在Java中有很多类的方法需要接收引用类型的对象作为传入参数,此时就无法将一个基本数据类型的值传入。为了解决这样的问题,JDK提供了一系列的包装类,通过这些包装类可以将基本数据类型的值包装为引用数据类型的对象。基本类型对应的包装类如下表所示。
基本数据类型 | 对应的包装类 |
---|---|
byte | Byte |
char | Character |
int | Integer |
short | Short |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
表中列举了8种基本数据类型及其对应的包装类。除了Integer和Character类,其他包装类的名称和基本数据类型的名称一致,只是类名第一个字母大写。
下面介绍两个概念:
- 装箱:指将基本数据类型转换为引用数据类型。
- 拆箱:指将引用数据类型的对象转为基本数据类型。
在使用包装类时,需要注意以下几点:
- 包装类都重写了Object类中的toString()方法,以字符串的形式返回被包装的基本数据类型;
- 除了Character类之外,包装类都有valueOf(String s)方法,可以根据String类型的参数创建包装类对象,但是s不能为null,且必须是可以解析为相应基本类型的数据,否则虽然编译通过,但是运行会报错。例如:
Integer i = Integer.valueOf("123"); // 合法
Integer i = Integer.valueOf("12a"); // 不合法
在JDK5.0中,引入自动拆箱和装箱,使得包装类对象和基本数据类型的值能进行混合数学运算。