int与Integer 的区别,什么时候用Integer ?什么时候用int?实体类为什么用Integer 不用int?每个基本类型的初始值是什么?
这些是 Java 面试和实际开发中很常见也很重要的基础知识。
🌱 int 和 Integer 的区别
特点
int
(基本类型)
Integer
(包装类)
类型
基本数据类型
引用类型 (对象)
默认值
0
null
存储位置
栈内存
堆内存(对象)
可否为null
不可以
可以
功能
只表示数值
提供方法(如toString()
、compareTo()
等)
性能
内存占用小,性能更好
相比基本类型略慢(多了装箱拆箱)
💡 什么时候用 Integer?什么时候用 int?
✅ 用int的情况:
数值计算频繁;不需要表示null(不存在的状态);内存和性能优先考虑时。
✅ 用Integer的情况:
对象类型场景:
类中属性(尤其是数据库映射的实体类,避免默认值和实际数据混淆);集合(如 List
🏠 实体类为什么用 Integer 而不用 int?
数据库设计对应:
数据库字段可能允许NULL,如果用int,无法区分0和null,会造成逻辑混淆;用Integer,可以明确表达“未赋值”的状态(即null)。
框架兼容性:
比如 MyBatis / Hibernate 进行ORM映射时,推荐用Integer,能自动处理null值。
扩展性更好:
Integer可以调用方法,方便扩展和使用,比如:
Integer a = 10; String s = a.toString();
⚡️ Java 基本数据类型默认值:
类型
默认值
byte
0
short
0
int
0
long
0L
float
0.0f
double
0.0d
char
'\u0000'
(空字符)
boolean
false
引用类型
null
🎯 总结
实体类属性:用Integer,防止数据库null和0混淆。普通运算场景:用int,节省内存,效率更高。集合泛型:必须用Integer,因为泛型不支持基本类型。需要表示“空值”:选Integer。