课后作业2

动手动脑
image
逐行分析:
System.out.println(st); → false
s指向SMALL,t指向LARGE,它们是不同的枚举常量
枚举常量是单例的,但不同的常量是不同的对象
System.out.println(s.getClass().isPrimitive()); → false
枚举类型不是原始数据类型,而是引用类型
枚举实际上是继承自java.lang.Enum的类
System.out.println(s
u); → true
Size.valueOf("SMALL")返回的是SMALL枚举常量
由于枚举常量是单例的,所以s和u指向同一个对象
循环输出:SMALL, MEDIUM, LARGE
Size.values()返回包含所有枚举常量的数组
按照定义的顺序输出

重要结论:
枚举是类类型,不是原始数据类型
枚举常量是单例的,每个常量在JVM中只有一个实例
枚举提供类型安全,比使用整数或字符串常量更安全
枚举有内置方法:values(), valueOf(), name(), ordinal()等
枚举可以用于switch语句,提供更好的可读性

动手实验
image
0.05 + 0.01 = 0.060000000000000005
1.0 - 0.42 = 0.5800000000000001
4.015 * 100 = 401.49999999999994
123.3 / 100 = 1.2329999999999999
这个结果确实很意外
浮点数的精度问题造成的.

怎样处理精度损失?
解决方法——使用BigDecimal类
Demo:TestBigDecimal.java
image

posted @ 2025-09-27 20:06  闲哉我也  阅读(5)  评论(0)    收藏  举报