一聚教程网:一个值得你收藏的教程网站

热门教程

如何利用Java封装类Long精确打印long类型的取值范围最大边界

时间:2026-07-01 09:24:46 编辑:袖梨 来源:一聚教程网

应直接使用Long.MAX_VALUE和Long.MIN_VALUE获取long类型边界值,因其是精度无损的静态常量;避免用字符串解析或Math.pow等易出错方式,后者存在异常或精度丢失风险。

直接用 Long.MAX_VALUELong.MIN_VALUE 即可精确获取并打印 long 类型的取值边界,它们是 Long 封装类中定义的静态常量,类型为 long,精度无损、无需转换。

为什么不能用字符串或浮点数构造

避免使用 new Long("9223372036854775807")(已弃用)或 (long) Math.pow(2, 63) - 1 等方式——前者易抛异常,后者因 Math.pow 返回 double,在极大数值下存在精度丢失风险(如 Math.pow(2, 63) - 1 实际可能等于 9223372036854775808,溢出为负)。

正确打印最大和最小值

直接访问静态字段,安全且语义清晰:

  • System.out.println(Long.MAX_VALUE); → 输出 9223372036854775807
  • System.out.println(Long.MIN_VALUE); → 输出 -9223372036854775808

验证边界值的字面量合法性

Java 允许直接用十进制字面量表示这些值,编译器会校验是否在 long 范围内:

立即学习“Java免费学习笔记(深入)”;

  • long max = 9223372036854775807L; ✅ 合法(末尾 L 明确类型)
  • long over = 9223372036854775808L; ❌ 编译错误:整数太大

需要字符串形式时直接调用 toString

若需字符串而非数字输出(例如日志或序列化),推荐用 String.valueOf()Long.toString(),避免隐式装箱开销:

  • System.out.println(String.valueOf(Long.MAX_VALUE));
  • System.out.println(Long.toString(Long.MIN_VALUE));

热门栏目