5.4 对象包装器与自动装箱
包装器(wrapper)
:所有基本类型都有一个与之对应的类- 对象包装器类是
不可变的
,一旦定义了包装器,就不能任意更改包装在其中的值 - 对象包装器类是
final
,不能定义它们的子类
- 对象包装器类是
自动装箱(autoboxing)
:使用基本类型值时,编译器将自动调用对应包装类的valueOf()
方法- 首先,由于包装器类引用可以为
null
,所以自动装箱可能会抛出一个NullPointerException
- 另外,如果在一个表达式里混合使用Integer和Double类型,
Integer值就会拆箱,自动提升为double,再装箱为Double
- 装箱和拆箱是
编译器认可
的,而不是虚拟机.
- 首先,由于包装器类引用可以为
API | 所在包 | 描述 |
---|---|---|
int intValue() |
java.lang.Integer |
以int的形式返回Integer对象的值(在Number类中覆盖了intValue方法) |
static String toString(int i) |
java.lang.Integer |
以一个新String对象的形式返回给定数值的十进制表示 |
static String toString(int i,int radix) |
java.lang.Integer |
返回数值i基于给定参数radix进制的表示 |
static int parseInt(String s) static int parseInt(String s,int radix) |
java.lang.Integer |
返回字符串s表示的整形数值, 给定字符串表示的是十进制整数 或者是radix参数进制的整数 |
static Integer valueOf(String s) static Integer valueOf(String s,int radix) |
java.lang.Integer |
返回用s表示的整形数值进行初始化后的一个新Integer对象 给定字符串表示的是十进制的整数 或者是radix参数进制的整数 |
Number parse(String s) |
java.text.NumberFormat |
返回数字值 |