本次国庆作业:将课程中的所有动手动脑的问题以及课后实验性的问题,整理成一篇文档
一个Java类文件中真的只能有一个公有类吗?
请使用Eclipse或javac检测一下以下代码,有错吗?
一个Java类文件中只能有一个公有类。java程序是从一个public类的main函数开始执行的。public类只能定义在以它的类名为文件名的文件中。
这个代码编写错误因为在这个代码一个公有类中包含了一个公有类,程序不可能运行。
把main()方法的返回值由 void 改为 int ,程序能编译通过吗?能运行吗?
不能运行,因为没有返回值。
为什么java规定作为程序入口点的main() 方法静态的?
Java是面向对象的语言。。就是说Java程序是有一个一个的类组成的。。如果是一般的非静态方法,那么,只有在创建对象之后,才能调用一般的非静态方法。但是main函数是整个程序的起点,main函数不可能等到哪个对象创建了之后然后去调用它。。然而静态方法可以允许在创建对象之前就调用该方法。。自然的。。main方法必然是静态的了
Java变量遵循“同名变量的屏蔽原则”,请课后阅读相关资料弄清楚相关知识,然后自己编写一些测试代码,就象本示例一样,有意识地在不同地方定义一些同名变量,看看输出的到底是哪个值。
对于同名变量,若变量是在局部内定义并使用,那么将屏蔽全局变量,而使用局部变量的值。
若变量是在全局定义并使用,那么将屏蔽局部变量,而使用全局变量的值。
为什么double类型的数值进行运算得不到“数学上精确”的结果?
double类型的数值占用64bit,即64个二进制数,除去最高位表示正负符号的位,在最低位上一定会与实际数据存在误差,而double类型的数值只有64bit,后面舍去的位数一定会带来误差,无法得到“数学上精确”的结果,除非数值刚好是2的n次方。
以下代码的输出结果是什么?
int X=100;
int Y=200;
System.out.println("X+Y="+X+Y);
System.out.println(X+Y+"=X+Y");
为什么会有这样的输出结果?
输出结果:
第一个是按照+x+y输出的,第二个是按照x+y输出的。“”中的不变输出。
对于在System.out.println()语句中的+,如果+的前面是字符串,如“X+Y”就是个字符串,这种情况下,不管后面接的是整型、布尔型等等,都默认是拼接字符串,而不会进行加法运算。