Java 中的包装类是一种特殊的类,用来将基本数据类型(如 int、double、char 等)包装成对象。包装类的作用是可以让基本数据类型具有对象的特性,比如可以作为参数传递给泛型类或方法,可以调用对象的方法,可以存储在集合中等。
Java 中为每种基本数据类型都提供了一个对应的包装类,如下表所示:
基本数据类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
要使用包装类,首先需要创建包装类的对象。创建包装类的对象有两种方式:一种是使用构造方法,另一种是使用静态方法 valueOf。例如,下面是两种创建 Integer 对象的方式:
// 使用构造方法
Integer i1 = new Integer(10); // 创建一个值为 10 的 Integer 对象
// 使用静态方法 valueOf
Integer i2 = Integer.valueOf(20); // 创建一个值为 20 的 Integer 对象
创建了包装类的对象后,就可以使用包装类的方法来操作基本数据类型了。包装类提供了一些常用的方法,如下表所示:
方法名 | 说明 |
---|---|
intValue | 返回该对象对应的 int 值 |
doubleValue | 返回该对象对应的 double 值 |
charValue | 返回该对象对应的 char 值 |
booleanValue | 返回该对象对应的 boolean 值 |
compareTo | 比较该对象和另一个对象的大小,返回负数、零或正数 |
equals | 判断该对象和另一个对象是否相等 |
toString | 返回该对象的字符串表示 |
parseXXX | 将一个字符串解析成对应的基本数据类型,如 parseInt、parseDouble 等 |
valueOf | 将一个基本数据类型或字符串转换成对应的包装类对象 |
例如,下面是一些使用包装类方法的例子:
// 使用 intValue 方法
int i3 = i1.intValue(); // 将 i1 对象转换成 int 值
System.out.println(i3); // 输出 10// 使用 compareTo 方法
int i4 = i1.compareTo(i2); // 比较 i1 和 i2 的大小
System.out.println(i4); // 输出 -1// 使用 parseDouble 方法
double d1 = Double.parseDouble("3.14"); // 将字符串 "3.14" 解析成 double 值
System.out.println(d1); // 输出 3.14// 使用 valueOf 方法
Boolean b1 = Boolean.valueOf(true); // 将 boolean 值 true 转换成 Boolean 对象
System.out.println(b1); // 输出 true
除了使用包装类的方法外,还可以使用自动装箱和自动拆箱来简化代码。自动装箱是指将基本数据类型自动转换成对应的包装类对象;自动拆箱是指将包装类对象自动转换成对应的基本数据类型。例如,下面是一些使用自动装箱和自动拆箱的例子:
// 自动装箱
Integer i5 = 30; // 相当于 Integer i5 = Integer.valueOf(30);
Double d2 = 3.14; // 相当于 Double d2 = Double.valueOf(3.14);// 自动拆箱
int i6 = i5; // 相当于 int i6 = i5.intValue();
double d3 = d2; // 相当于 double d3 = d2.doubleValue();// 自动装箱和自动拆箱可以用在运算中