课程作业02-2

1、一个Java类文件中只能有一个公有类吗? 答:java程序是从一个public类的main函数开始执行的,每个编译单元(文件)都只有一个public类,因为每个编译单元都只能有一个公共接口,用public类来实现,所以一个Java类文件中只能有一个公有类。

2、把main()方法的返回值由void改为int,程序能编译通过吗?能运行吗? 答:程序编译不能通过,无法运行。main()函数若加上返回值,就只能做一般函数处理。

3、为什么java规定作为程序入口点的main()方法为静态的? 答:非静态成员函数在执行前必须先构造并实例化该函数所在的类,如果允许非静态的main,那么main函数所在的类就必须先进行实例化,而这对于运行一个程序的主函数来说是不现实的。因此,java规定了main函数必须是静态的。

4、看着这个图,再查查java中每个数据类型所占的位数,和表示数值的范围,你能得出什么结论? 答:char:8bits、byte:8bits、short:16bits、int:32bits、long:64bits、float:32bits、double:64bits。 结论:低精度向高精度转化无精度损失,从高精度到低精度则有精度损失。

5、为什么double类型的数值进行运算得不到“数学上精确”的结果? 答:double执行二进制浮点运算,该类型在计算机中的存储分为三部分:符号位、指数位、尾数部分。数据在计算机内部是以二进制的形式存储的(无论在内存还是cpu的寄存器内),其表示的小数根据不同的系统,不同的环境都会有一定的差异。

6、在构建BigDecimal对象时应使用字符串而不是double数值,否则,仍有可能引发计算精度问题。为什么? 答:BigDecimal用来对超过16位有效位的数进行精确的计算,double只能用来做科学计算或工程计算。BigDecimal所创建的对象不能使用传统的算术运算符直接对其对象进行数学运算,而必须调用相对应的方法。方法中的参数也必须是BigDecimal的对象。

7、动手动脑:以下代码的输出结果是什么?为什么会这样? int X=100; int Y=200; System.out.println("X+Y="+X+Y); System.out.println(X+Y+"=X+Y"); 答:输出:X+Y=100200           300=X+Y; 语句一中的“+”分别连接X、Y两个变量;语句二的第一个“+”作为算术运算符,第二个“+”连接后面的信息。

原文地址:https://www.cnblogs.com/wyl814922595/p/7636223.html