在Java中,int是32位有符号基本数据类型,占用4字节内存,默认表示整数。其取值范围为-2,147,483,648(-2³¹)到2,147,483,647(2³¹-1),超出范围会导致溢出,如最大值加1变为最小值。int常用于循环计数、数组索引及普通整数运算,默认值为0,适合大多数计算场景,但处理大数时需改用long或BigInteger。
一、int类型的取值范围
定义:int是Java中的基本数据类型,占用4字节(32位)存储空间。
取值范围:
有符号整数(默认):-2³¹ 到 2³¹-1(即 -2,147,483,648 到 2,147,483,647)。
无符号整数(Java 8+):通过Integer.toUnsignedLong()可扩展至 0 到 4,294,967,295,但需手动处理溢出。
默认值:未初始化时为 0。
溢出风险:超出范围时会循环取模。
二、int的常见用法
变量声明与赋值
javaint age = 25; // 十进制int hexValue = 0xFF; // 十六进制(255)int binary = 0b1010; // 二进制(10,Java 7+)
算术运算
javaint a = 10, b = 3;int sum = a + b; // 13int mod = a % b; // 1
类型转换
自动提升:与更大类型运算时自动转换。
强制转换:可能丢失精度。
javadouble pi = 3.14;int truncated = (int) pi; // 3
包装类Integer
提供工具方法:
javaint num = Integer.parseInt("123"); // 字符串转intint max = Integer.MAX_VALUE; // 获取最大值(2147483647)
位运算
javaint flags = 0b0001;flags |= 0b0010; // 设置第2位(flags = 3)boolean isSet = (flags & 0b0010) != 0; // 检查位
数组与循环
javaint[] scores = {90, 85, 70}; // 数组声明for (int i = 0; i < scores.length; i++) {System.out.println(scores[i]);}
三、注意事项
大数处理:超过int范围时需用long(8字节)或BigInteger。
性能:int运算比Integer对象更快。
比较:使用==比较基本类型,equals()比较包装类对象。
示例代码:
javapublic class IntExample {public static void main(String[] args) {int distance = 1_000_000; // Java 7+支持下划线分隔System.out.println("Distance: " + distance);// 溢出演示int max = Integer.MAX_VALUE;System.out.println(max + 1); // 输出 -2147483648}}
int支持十进制、十六进制和二进制字面量。运算时若与更大类型混合,会自动提升类型。包装类Integer提供MAX_VALUE、MIN_VALUE等常量及工具方法。需注意直接比较int用==,而Integer对象需用equals(),且自动装箱可能引发性能问题。