9.15 课后作业2
public class file { private enum MyEnum{ ONE, TWO, THREE;} public static void main(String[] args) { for(MyEnum value:MyEnum.values()){ System.out.println(value); } } }
运行结果是
ONE
TWO
THREE
value方法是用于获取枚举类型中所有枚举常量的数组,它是一个自动生成的方法。
MyEnum.values()调用value方法,返回一个包含枚举常量的MyEnum数组,然后增强for循环遍历数组打印输出
原码反码补码是计算机存储一个具体数字的编码方式。java虚拟机中整数有byte、short、int、long四种 分别表示 8位、16位、32位、64位有符号整数。整数用补码表示
正数的反码跟原码相等
在计算机中,利用补码的方式进行运算,就可以解决直接用原码来计算得到的结果是错误的问题,也解决了减法的问题。
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
字符串表示文本,数字表示类型
当一个字符串与一个数字相加时,Java会自动将数字转换为字符串,然后进行拼接。
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类型的数值进行计算, 其结果是不精确的。Double类型的数值占用64bit,即64个二进制数,除去最高位表示正负符号的位,在最低位上一定会与实际数据存在误差,简单地说就是我们给出的数值,在大多数情况下需要比64bit更多的位数才能准确表示出来,而double类型的数值只有64bit,后面舍去的位数一定会带来误差,无法得到“数学上精确”的结果。