动手动脑的问题以及课后实验性的问题1
运行EnumTest.java
1 package second; 2 3 public class B { 4 5 public static void main(String[] args) { 6 Size s=Size.SMALL; 7 Size t=Size.LARGE; 8 //s和t引用同一个对象? 9 System.out.println(s==t); // 10 //是原始数据类型吗? 11 System.out.println(s.getClass().isPrimitive()); 12 //从字符串中转换 13 Size u=Size.valueOf("SMALL"); 14 System.out.println(s==u); //true 15 //列出它的所有值 16 for(Size value:Size.values()){ 17 System.out.println(value); 18 } 19 } 20 21 } 22 enum Size{SMALL,MEDIUM,LARGE};
其结果为
s和t引用的并不是同一个对象,不是原始数据类型,其结果返回了false;从字符串中转换时返回了true;
运行TestDouble.java
1 package second; 2 3 4 public class H { 5 6 public static void main(String args[]) { 7 System.out.println("0.05 + 0.01 = " + (0.05 + 0.01)); 8 System.out.println("1.0 - 0.42 = " + (1.0 - 0.42)); 9 System.out.println("4.015 * 100 = " + (4.015 * 100)); 10 System.out.println("123.3 / 100 = " + (123.3 / 100)); 11 } 12 }
发现java存在严重的精度丢失问题,无论加减乘除都难以保证精度,今后我们在计算时应当小心java的运算。
运行以下代码
1 package Calculator; 2 public class Addd { 3 4 public static void main(String[] args) { 5 // TODO Auto-generated method stub 6 int X=100; 7 int Y=200; 8 System.out.println("X+Y="+X+Y); 9 System.out.println(X+Y+"=X+Y"); 10 11 } 12 13 }
运行结果为
发现当+在后作为连接字符串之后时,也将被用作连接字符串功能(若我们想实现x+y应该给他加上小括号);当其在前时,将进行运算。