课后作业二
Java语法基础课动手动脑&实验问题整理
一、枚举类型实践
跑了EnumTest.java,试了两种获取枚举值的方式,结果用==和equals判断都一样,foreach也能遍历。总结就是枚举是引用类型,相同值对应一个对象,这俩判断方法效果相同,基本用法差不多懂了。
二、变量屏蔽分析
Test类里有两个value变量,一个静态一个局部,运行后输出局部的那个值。写了几个测试代码看了看,大概就是内层变量会把外层同名的盖住,程序只用当前作用域的变量。
三、位运算与二进制存储
先大概看了下原码、反码、补码的概念,然后测了5和-5的位运算。发现-5是32位补码,~5算出来是-6,应该能确定Java里整数用补码存。
四、double类型精度问题
运行TestDouble.java,发现小数计算结果不对,比如0.05+0.01得出来不是0.06。查了下,说是double按什么标准存,尾数位不够,有些小数没法精确表示,算的时候就有误差。
五、BigDecimal解决精度问题
用字符串当参数建BigDecimal,计算结果是对的;用double当参数还是有误差。应该是double本身存的就是近似值,传进去的时候误差已经有了。

浙公网安备 33010602011771号