ADB设备序列号冲突解决:transport_id原理与多板卡并行调试实战
2026/9/19 5:33:43
在 Java 中,每一种数值型包装类都定义了两个常量:
MIN_VALUE:该类型能表示的最小值MAX_VALUE:该类型能表示的最大值例如:
System.out.println(Integer.MIN_VALUE);// -2147483648System.out.println(Integer.MAX_VALUE);// 2147483647| 类型 | 位数 | MIN_VALUE | MAX_VALUE |
|---|---|---|---|
| byte | 8 | -128 | 127 |
| short | 16 | -32768 | 32767 |
| int | 32 | -2147483648 | 2147483647 |
| long | 64 | -9223372036854775808 | 9223372036854775807 |
示例:
System.out.println(Byte.MIN_VALUE);System.out.println(Long.MAX_VALUE);| 类型 | MIN_VALUE 含义 | MAX_VALUE |
|---|---|---|
| float | 最小正数 | ≈ 3.4028235E38 |
| double | 最小正数 | ≈ 1.7976931348623157E308 |
⚠️注意:浮点型的MIN_VALUE不是负数!
System.out.println(Float.MIN_VALUE);// 1.4E-45System.out.println(-Float.MAX_VALUE);// 才是最小负值这个结果和浮点数本身的底层实现有关
因为浮点型的设计目标是:
尽可能精确地表示“接近 0 的小数”
而不是只关心负数边界。
如想进一步了解,可参考IEEE 754标准。
以int为例:
int 占用 32 位 范围是:-2³¹ ~ 2³¹ - 1即:
-2147483648 ~ 2147483647原因:补码
Integer.MIN_VALUE==-Integer.MAX_VALUE-1以Integer为例:
publicstaticfinalintMIN_VALUE=0x80000000;publicstaticfinalintMAX_VALUE=0x7fffffff;二进制形式:
MIN_VALUE = 10000000 00000000 00000000 00000000 MAX_VALUE = 01111111 11111111 11111111 11111111示例:MAX_VALUE + 1
inta=Integer.MAX_VALUE;intb=a+1;System.out.println(b);// -2147483648发生整数溢出,但 Java 不会抛异常!
同理:
intc=Integer.MIN_VALUE;System.out.println(c-1);// 2147483647intx=Integer.MIN_VALUE;System.out.println(Math.abs(x));输出:
-2147483648📌 原因:
abs(Integer.MIN_VALUE)仍然是MIN_VALUEintsafeAbs(intx){if(x==Integer.MIN_VALUE){thrownewArithmeticException("Overflow");}returnMath.abs(x);}intmax=Integer.MIN_VALUE;intmin=Integer.MAX_VALUE;if(value>Integer.MAX_VALUE){// overflow}intresult=Integer.MIN_VALUE;// 表示“尚未计算”| 对比 | 基本类型 | 包装类 |
|---|---|---|
| 是否有 MIN_VALUE | ❌ | ✔ |
| 是否有 MAX_VALUE | ❌ | ✔ |
| 推荐用法 | 计算 | 常量、泛型、工具方法 |
示例:
inta=10;Integerb=Integer.MAX_VALUE;❌没有!
BigIntegerbig=newBigInteger("999999999999999999999");📌 原因: