java如何包装
包装的基本概念
在Java中,包装通常指将基本数据类型转换为对应的对象类型,或对现有功能进行封装以提供更简洁的接口。包装的核心目的是增强灵活性和扩展性。
基本数据类型的包装类
Java为每种基本数据类型提供了对应的包装类:
int→Integerdouble→Doubleboolean→Booleanchar→Character- 其他类似(
Byte,Short,Long,Float)
int primitiveInt = 42;
Integer wrappedInt = Integer.valueOf(primitiveInt); // 手动装箱
int unwrapped = wrappedInt.intValue(); // 手动拆箱
自动装箱与拆箱
Java 5+支持自动装箱(Autoboxing)和拆箱(Unboxing),编译器自动完成转换:
Integer autoWrapped = 42; // 自动装箱
int autoUnwrapped = autoWrapped; // 自动拆箱
自定义包装模式
通过组合或继承对现有类进行功能扩展:

public class EnhancedList<T> {
private final List<T> internalList = new ArrayList<>();
public void addWithLog(T item) {
System.out.println("Adding item: " + item);
internalList.add(item);
}
// 包装原有List的方法...
}
实用包装技巧
- 不可变包装:使用
Collections.unmodifiableList()等方法创建只读视图 - 装饰器模式:动态添加功能而不修改原有类
- 接口适配:通过包装使不兼容的接口协同工作
性能注意事项
- 频繁装箱/拆箱可能影响性能
- 包装对象比基本类型占用更多内存
Integer.valueOf()会缓存-128到127的值






