动手动脑

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中每个数据类型所占的位数,和表示数值的范围,你能得出什么结论

结论:强制类型转换时,可能会引起信息的损失。

原文地址:https://www.cnblogs.com/1995-qxl/p/4861026.html