java如何装箱
装箱的概念
装箱(Boxing)是将基本数据类型(如int、double等)转换为对应的包装类对象(如Integer、Double)的过程。Java从JDK 1.5开始支持自动装箱(Autoboxing),编译器会自动完成转换。

自动装箱示例
直接为包装类对象赋予基本类型的值,编译器会自动调用valueOf()方法完成装箱:

Integer num = 42; // 自动装箱,等价于 Integer num = Integer.valueOf(42);
Double pi = 3.14; // 自动装箱为Double对象
手动装箱方法
通过包装类的静态方法valueOf()或构造函数显式装箱(不推荐构造函数,可能产生性能开销):
Integer num = Integer.valueOf(42); // 推荐方式,可能复用缓存
Integer num2 = new Integer(42); // 不推荐,每次创建新对象
装箱的注意事项
- 缓存机制:部分包装类(如
Integer在-128~127范围内)会缓存对象,valueOf()可能返回同一实例。 - 性能影响:频繁装箱/拆箱可能增加GC压力,需注意循环或大量计算场景。
- 空指针风险:包装类对象可能为
null,拆箱时需判空。
常见包装类对应关系
| 基本类型 | 包装类 |
|---|---|
int |
Integer |
double |
Double |
char |
Character |
boolean |
Boolean |






