1.一个java类文件中只能有一个公有类
java程序是一个从从public类的main函数开始执行的,只能有一个public类是为了给类装载器提供方便。每个编译单元都只能有一个public类。因为每个编译单元都只能有一个公共接口,用public类来表现。该接口可以按照要求包含众多的支持包访问权限的类。如果有一个以上的public类,编译器就会报错,并且public类的名称必须与文件名相同。
2.把main()方法中的返回值由void改为int,程序不能编译通过,不能运行。
main函数是不能被调用的,所以没有返回值。void没有返回值,而将void改成int,则必须有返回值,所以有编译错误。
如图所示,会有错误信息,
3.java变量遵循“同名变量的屏蔽原则”
如图所示,调试结果为2.
每一个变量都有一个“有效”的区域,区域外变量将不再有效.java遵循同名变量的屏蔽原则,类中定义了私有静态变量value=1,在函数中又定义一个value=2,在函数中输出value,结果是2,如果函数中没有定义value,则输出结果是1.
4.java中的类型转换
java中的基本数据类型转换分为自动类型转换和强制类型转换。自动数据类型转换是由优先级别低的数据赋值给优先级别高的变量。强制类型转换是由优先级别高的数据赋值给优先级别低的变量。强制类型转换通常都会有存储精度的损失。在整数之间进行类型转换时,数值不发生改变;而将整数类型,特别是比较大的整数类型转换成小数类型时,由于存储方式不同,有可能存在精度上的损失。
(1)基本型整型int:4字节32位,数值范围-2147483648至2147483648
(2)字节型byte:1字节8位,数值范围-128至127
(3)短整型short:2字节16位,数值范围是-32768至32768
(4)长整型long:8字节64位,数值范围是-9233372036854477808至9233372036854477808
(5)字符型char:2字节16位,数值范围是‘\u0000-u\ffff’
(6)布尔型boolean:1字节8位,数值范围是true/false
5。关于double类型数值运算的精确性问题
0.01+0.05=0.06000000000000005;很显然结果是不精确的。
double类型的数值占用64bit,即64个二进制数,除去最高位表示正负符号的位,在最低位上一定会与实际数据存在误差(除非实际数据恰好是2的n次方)。
6.动手动脑
第一个输出语句的+是将X和Y连接起来,计算结果将两数据连接起来;
第二个输出语句中+是运算符,对X和Y求和。