实验后的体会
作者:互联网
package HJssss; public class QWE { public static void main(String[] args) { Size s=Size.SMALL; Size t=Size.LARGE; //s和t引用同一个对象? System.out.println(s==t); // //是原始数据类型吗? System.out.println(s.getClass().isPrimitive()); //从字符串中转换 Size u=Size.valueOf("SMALL"); System.out.println(s==u); //true //列出它的所有值 for(Size value:Size.values()){ System.out.println(value); } } } enum Size{SMALL,MEDIUM,LARGE};
false false true SMALL MEDIUM LARGEj
结果如上,因为枚举不是原始数据类型,所以s.getClass().isPrimitive()输出的值为false,又因为枚举的每个具体值都引用一的特定的对象。相同的值则引用同一个对象,所以s和t引用同一个对象是输出false,我们也可以用==和equals()的方法直接比较对比枚举变量的值,就是说,对于枚举类型的变量,==和equals()方法执行的结果是等价的。
package HJssss; public class QWE { public static void main(String[] args) { int X=100; int Y=200; System.out.println("X+Y="+X+Y); System.out.println(X+Y+"=X+Y"); } }
X+Y=100200 300=X+Y
这个的输出结果就是这个,显然结果不对因为”X+Y=”是一个字符串,+X+Y系统就相当于连续输出两个数,要想输出正确结果就要在+X+Y加上括号。
package HJssss; public class QWE { public static void main(String args[]) { System.out.println("0.05 + 0.01 = " + (0.05 + 0.01)); System.out.println("1.0 - 0.42 = " + (1.0 - 0.42)); System.out.println("4.015 * 100 = " + (4.015 * 100)); System.out.println("123.3 / 100 = " + (123.3 / 100)); } }
输出结果:
0.05 + 0.01 = 0.060000000000000005 1.0 - 0.42 = 0.5800000000000001 4.015 * 100 = 401.49999999999994 123.3 / 100 = 1.2329999999999999
显然结果很不精确,所以我们得到结论使用double类型的数值进行计算,其结果是不精确的。那么要想解决这个问题就要去用bigdecimal类去解决,用字符串来输出,在构建bigdecimal对象时应使用字符串而不时double数值,否则,仍有可能,引发计算精度问题。
int number = Integer.parseInt(numberString );
Integer.parseInt方法将 String 转为数字 ( int)
类Integer 属于包 java.lang,它“封装”了一个int类型的整数,因此,它是原始数据类型int的“包装类”。
JOptionPane.showMessageDialog(
null, "The sum is " + sum, "Results",
JOptionPane.PLAIN_MESSAGE );
The sum is " + sum
使用运算符 + 连接字面量“The sum is” 和计算结果 sum将String 和其它数据类型相加,结果是一个新的String。
在学习原码, 反码和补码之前, 我先了解了机器数和真值的概念,对于一个数, 计算机要使用一定的编码方式进行存储. 原码, 反码, 补码是机器存储一个具体数字的编码方式,原码就是第一位用1和0表示符号,其余位表示值,原码是人脑最容易理解和计算的表示方式,反码就是正数的反码就是它原码的本身,负数的反码它的符号位的那个数不变,其余各个位取反,可见如果一个反码表示的是负数, 人脑无法直观的看出来它的数值. 通常要将其转换成原码再计算,补码的表示方法正数的补码还是其原码的本身,负数的补码符号位不变,其余位取反,最后一位加一,可以看出,负数的补码表示方式也是人脑无法直观看出其数值的. 通常也需要转换成原码在计算其数值,我也了解了为什么要使用原码,反码,补码,原码,反码,补码是完全不同的,原码才是对人类最容易直接识别并用于直接运算的表示方式,因为人脑可以知道第一位是符号位, 在计算的时候我们会根据符号位, 选择对真值区域的加减. (真值的概念在本文最开头). 在我运行了那个代码之后,我认识了枚举,枚举它是一种新的类型,允许用常量来表示特定的数据片段,而且全部以类型安全的形式来表示,枚举的使用增强了程序的健壮性,比如在引用一个不存在的枚举值的时候,编译器会报错。
标签:体会,反码,System,实验,println,Size,原码,out 来源: https://www.cnblogs.com/nanbei666/p/16684670.html