1.枚举类型
运行EnumTest.java
运行结果:false,false,true,SMALL,MEDIUM,LARGE
结论:枚举类型是引用类型,枚举不属于原始数据类型,它的每个具体值都引用一个特定的对象。相同的值则引用同一个对象。可以使用“==”和equals()方法直接比对枚举变量的值,换句话说,对于枚举类型的变量,“==”和equals()方法执行的结果是等价的。
2.Java中同名变量的屏蔽原则
运行ppt上此段代码
运行结果:2
结论:每一个变量都有它的作用域,例如局部变量和全局变量,当输出同名变量时,先输出局部变量,如果没有,那就上一级范围寻找同名变量输出,如果还是没有找到,就继续扩大范围寻找然后输出,所以说原则是先输出作用域小的变量,再输出作用域大的变量。
3.Java中的类型转换
int 32位 -2147483648~2147483647
short 16位 -32768~32678
long 64位 -9223372036854775808~9223372036854775807
float 32位 -340292347E+38~+340292347E+38
double 64位 -1.79769313486231576E+308~.79769313486231576E+308
char 16位 ‘\u0000′‘~‘\uFFFF’
boolean 1位 true/false
byte 8位 -128~127
数值范围小的向数值范围大的进行类型转换没有精度损失,反之则有精度损失。
4.为什么double类型的数值进行运算得不到数学上精确的结果?
在这里结合double类型数值的位数64位,而我们在数学计算时,有些计算所获得结果所需位数已经超过了64位,所以不准确,严格来说这是计算机硬件再就是定的这种数据类型所导致的无法避免的误差,而为了避免这种计算误差,数学上大可以用分数表示,再就是使用字符串类型存储数值。
5.字符联接操作
代码输出运行第一行是字符串的连接,第二行是数值相加。
之所以出现这种结果,是因为计算机在读写代码是按照从左往右,从上至下的顺序读取代码,所以第一行代码前面是字符串,所以后面是字符连接,而第二行代码前面先进行了数值计算,所以是加法。