java中的封装类 与 自动装箱和拆箱
封装类
Java中的封装类(Wrapper Class)是为了将基本数据类型转换为对象类型而设计的类。它们提供了一种将基本数据类型(如int、float等)封装成对象的方法。Java自动装箱和拆箱是指在基本数据类型与其对应的封装类之间进行隐式的转换。
其中有Integer派别:Integer,Short,Byte,Character,Long这几个类的valueOf()方法的实现是相似的。
还有Double派别:Double,Float的valueOf()方法的实现是类似的,每次放回不同的对象。
Integer派别
类型 | 相同对象范围 | 不同对象范围 |
---|---|---|
Integer | (-128,128) | i >= 128|| i<= -128 |
Short | (-128,128) | s > 128||s <= -128 |
Character | c<128 | c >= 128 |
Long | (-128,128) | v >= 128|| v <= -128 |
自动装箱
自动装箱是指将一个基本数据类型转换成它所对应的封装类的过程,例如:
Copy Codeint i = 10;
Integer integer = i; // 自动装箱,将int类型的变量i转换成Integer类型的变量integer
拆箱
拆箱则是指将一个封装类对象转换成对应的基本数据类型的过程,例如:
Copy CodeInteger integer = 10;
int i = integer; // 自动拆箱,将Integer类型的变量integer转换成int类型的变量i
自动装箱和拆箱可以使程序员在使用基本数据类型和其对应的封装类时更加方便,同时也可以避免一些由于类型不匹配引起的编译错误。需要注意的是,在进行自动拆箱的时候,如果引用变量值为 null,则会抛出NullPointerException 异常。