Java中有两大类数据类型: 基本类型引用类型

另外地,基本类型们都有其对应的封装类

比如: int -> Integer

基本类型转换成其对应的封装类的过程,就叫做装箱(Boxing)。

反之,就叫拆箱(Unboxing)。

Auto Boxing && Unboxing

因为每次显示的装箱、拆箱过于麻烦,从JDK 5开始,Java 提供了自动装箱、拆箱(Auto Boxing & Unboxing)

让下面这样的代码成立。

Integer i = 100; //Boxing
int j = new Integer(100); //Unboxing

但是在装箱过程中,有个小特点需要注意一下。

当装箱的int类型在 -128~127 之间时,装箱后的引用会指向同一对象。

而不在这范围内的值,每次装箱都会产生一个新对象。

类似的其它基本类型的范围:

  • boolean : 装箱后总是指向同一对象
  • long : -128L~127 之间,装箱后指向同一对象
  • float : 总是产生新对象
  • double : 总是产生新对象

下面是测试代码:

  java
  boxing, java, 拆箱, 数据类型, 装箱