🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 包装类 ### 为什么要有包装类 > Java是一个面向对象的编程语言,基本类型并不具有对象的性质,为了让基本类型也具有对象的特征,就出现了包装类型;它相当于将基本类型“包装起来”,使得它具有了对象的性质,并且为其添加了属性和方法,丰富了基本类型的操作。 **简而言之就是,基本数据类型不能当成一个对象使用;包装类可以把基本数据类型转换成一个对象。** ### 对应 | 基础数据类型 | 包装类 | | --- | --- | | boolean | Boolean | | byte | Byte | | short | Short | | int | Integer | | long | Long | | float | Float | | double | Double | | char | Character | ### 不同 1. 声明方式不同 基本类型不使用 new 关键字,而包装类型需要使用 new 关键字来在堆中分配存储空间 ``` # 基本数据类型 int a = 123; # 基本数据类型转包装类 Integer a = new Integer(123); Integer a = 123; Integer a = Integer.valueOf(123); # 包装类转基本数据类型 a.intValue(); ``` 2. 存储方式及位置不同 基本类型是直接将变量值存储在栈中,而包装类型是将对象放在堆中,然后通过引用来使用; ![](https://img.kancloud.cn/40/34/40343539785b91713ca1da457cad18c7_394x305.png) 3. 初始值不同 基本类型的初始值如 int 为 0,boolean 为 false,而包装类型的初始值为 null ; 4. 使用方式不同 基本类型直接赋值直接使用就好,而包装类型在集合如 Collection<Integer>、Map<Integer, String> 时会使用到。 ### 总结 包装类固然是好,但是这样做也不是没有代价的,装箱和拆箱的性能差距,在大数据和大并发的环境中会被体现出来。