java int 如何存储
整型(int)的存储机制
在Java中,int是32位有符号整数类型,采用补码(Two's Complement)形式存储。补码表示法能统一处理正负数的加减运算,同时消除原码和反码中“+0”和“-0”的问题。
补码规则

- 正数:补码与原码相同。
例如:5的二进制表示为0000 0000 0000 0000 0000 0000 0000 0101。 - 负数:绝对值取反后加1。
例如:-5的二进制表示为1111 1111 1111 1111 1111 1111 1111 1011。
存储范围与溢出
- 范围:
-2^31至2^31 - 1(即-2,147,483,648到2,147,483,647)。 - 溢出处理:超出范围时数值会循环。例如
Integer.MAX_VALUE + 1变为Integer.MIN_VALUE。
示例代码:验证存储
int max = Integer.MAX_VALUE; // 2,147,483,647
int min = Integer.MIN_VALUE; // -2,147,483,648
System.out.println(max + 1 == min); // 输出true,溢出验证
内存分配
- 栈内存:局部变量
int直接存储在栈帧中,访问速度快。 - 堆内存:作为对象成员变量时,随对象分配在堆上。
自动装箱与缓存
- 自动装箱:
int与Integer可自动转换,但频繁操作可能影响性能。 - 缓存优化:
Integer对-128到127的值有缓存,避免重复创建对象。
Integer a = 127;
Integer b = 127;
System.out.println(a == b); // true,使用缓存对象
Integer c = 128;
Integer d = 128;
System.out.println(c == d); // false,新建对象
应用建议
- 优先使用基本类型
int以节省内存。 - 涉及集合操作时需使用
Integer(如List<Integer>)。 - 注意数值范围,大数值考虑
long或BigInteger。






