EnumTest.java运行结果
结论
- 枚举中的每个常量都是唯一实例,可用 == 直接比较(equals()same)
- 不属于基本数据类型
- valueOf 方法:通过字符串名称获取对应的枚举常量
- 使用 enum 关键字定义,常量之间用逗号分隔,结尾可加分号
- 通过 values 遍历所有常量
输入2,3
输入方法
- 使用JOptionPane类的showInputDialog方法。
String firstNumber = JOptionPane.showInputDialog(“Enter :" );
2.使用Scanner类
使用double类型的数值进行计算, 其结果是不精确的
double 类型无法得到精确结果,本质是二进制存储的有限性与十进制小数的无限性之间的矛盾:
- 多数十进制小数无法用有限二进制小数表示,只能近似存储;
- 有限的存储位数(53 位精度)进一步限制了表示范围;
- 运算时近似值的误差会累积,导致结果偏离数学精确值。
若需高精度计算(如金融、科学计算),应使用专门的高精度类(如 Java 的BigDecimal),而非原生 double 类型。
double的二进制存储是 “近似值”,无法精确表示多数十进制小数;
BigDecimal(double)会直接继承double的近似值,从根源上引入误差;
字符串构造器直接解析十进制字面量,避免了二进制转换的精度损失。
若无法避免用double作为输入(如数据来源是double变量),可先将double转换为字符串,再用字符串构造BigDecimal,或使用BigDecimal.valueOf(double)(内部会先调用Double.toString()转成字符串)
结论
+运算符的行为遵循 “左结合性”:
若左侧是字符串,+作为连接符,将右侧数据转为字符串后拼接
若两侧都是数值类型,+作为算术运算符,先计算结果再处理后续操作
``