应直接使用Long.MAX_VALUE和Long.MIN_VALUE获取long类型边界值,因其是精度无损的静态常量;避免用字符串解析或Math.pow等易出错方式,后者存在异常或精度丢失风险。
直接用 Long.MAX_VALUE 和 Long.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); → 输出 9223372036854775807System.out.println(Long.MIN_VALUE); → 输出 -9223372036854775808Java 允许直接用十进制字面量表示这些值,编译器会校验是否在 long 范围内:
立即学习“Java免费学习笔记(深入)”;
long max = 9223372036854775807L; ✅ 合法(末尾 L 明确类型)long over = 9223372036854775808L; ❌ 编译错误:整数太大若需字符串而非数字输出(例如日志或序列化),推荐用 String.valueOf() 或 Long.toString(),避免隐式装箱开销:
System.out.println(String.valueOf(Long.MAX_VALUE));System.out.println(Long.toString(Long.MIN_VALUE));