动手动脑的问题以及课后实验性的问题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应该给他加上小括号);当其在前时,将进行运算。

 

 

posted @ 2019-09-20 08:16  DemonSlayer  阅读(134)  评论(0编辑  收藏  举报