动手动脑
Java动手动脑
1、EnumTest.java示例
EnumTest.java的运行结果如下
运行结果分析:枚举类型是引用类型,不属于原始数据类型.
结论:枚举类型是引用类型,不属于原始数据类型,它的每个具体值都引用一个特定的对象。相同的值则引用同一个对象。
可以使用“==”和equals()方法直接比对枚举变量的值,换句话说,对于枚举类型的变量,“==”和equals()方法执行的结果是等价的。
2、TestDouble.java示例
TestDouble.java运行结果
结果分析:有些类型间的转换,精度会缺失。所以同一个数据需要转换为多种类型,并且这一数据需要比较长期的使用,多数情况下,推荐直接使用强制类型转换的方式。
结论:使用double类型的数值进行计算,其结果是不精确的。
3、以下代码的输出结果是什么?
int X=100;
int Y=200;
System.out.println("X+Y="+X+Y);
System.out.println(X+Y+"=X+Y");
为什么会有这样的输出结果?
运行结果:
结果分析:System.out.println("X+Y="+X+Y);这一行代码之所以会输出100200是因为计算机读取代码是有顺序的,要输出的是"X+Y=",后面的+X就是100,再一个+Y就是200,所以最后输出X+Y=100200,而System.out.println(X+Y+"=X+Y");X+Y=100+200=300,最后输出结果。
结论:除了赋值运算符 = ,所有的结合性都是从左到右。
4、动手动脑:
看着这个图,再查查Java中每个数据类型所占的位数,和表示数值的范围,你能得出什么结论
结论:强制类型转换时,可能会引起信息的损失。