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