包装类是什么,Java包装类的用法(非常详细,附带实例)
包装类(Wrapper Class)是 Java 中一组与基本数据类型对应的类,它们用于将基本数据类型转换成对象。
Java 的基本数据类型包括 int、double、float、char、boolean 等,而包装类分别为 Integer、Double、Float、Character、Boolean 等。
包装类的主要作用是在基本数据类型与对象之间建立桥梁,使得基本数据类型可以像对象一样进行操作。包装类提供了一系列方法来操作基本数据类型,以及将基本数据类型转换为字符串和从字符串中解析为基本数据类型的方法。
常见的包装类与基本数据类型的对应关系如下表所示。除 int 和 char 类型外,其他的类型对应规则就是第一个字母大写。

图 1 Number类图
Number 类有 6 个方法可以将包装类对象转换为对应基本数据类型,如下表所示。
但是需要注意的是大范围数字转换为小范围数字时,如果数字本身很大,可能会导致精度的丢失。
示例代码如下:
程序运行结果如下:
示例代码如下:
示例代码如下:
Java 的基本数据类型包括 int、double、float、char、boolean 等,而包装类分别为 Integer、Double、Float、Character、Boolean 等。
包装类的主要作用是在基本数据类型与对象之间建立桥梁,使得基本数据类型可以像对象一样进行操作。包装类提供了一系列方法来操作基本数据类型,以及将基本数据类型转换为字符串和从字符串中解析为基本数据类型的方法。
常见的包装类与基本数据类型的对应关系如下表所示。除 int 和 char 类型外,其他的类型对应规则就是第一个字母大写。
基本数据类型 | 包装类 |
---|---|
boolean | Boolean |
byte | Byte |
char | Character |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
从对象到基本数据类型的转换
Byte、Short、Integer、Long、Float 和 Double 这几个类都是数字相关的包装类,它们有相同的父类 java.lang.Number,如下图所示:
图 1 Number类图
Number 类有 6 个方法可以将包装类对象转换为对应基本数据类型,如下表所示。
方法 | 功能 |
---|---|
byteValue() | 将当前包装的对象转换为 byte 类型数据。 |
doubleValue() | 将当前包装的对象转换为 double 类型数据。 |
floatValue() | 将当前包装的对象转换为 float 类型数据。 |
intValue() | 将当前包装的对象转换为 int 类型数据。 |
longValue() | 将当前包装的对象转换为 long 类型数据。 |
shortValue() | 将当前包装的对象转换为 short 类型数据。 |
但是需要注意的是大范围数字转换为小范围数字时,如果数字本身很大,可能会导致精度的丢失。
示例代码如下:
public class Main { public static void main(String args[]) { // ① 创建 Integer(5)对象 Integer num1 = new Integer("5"); // ② int 整数 5 会自动转换为 Integer 对象,即 Integer(5) Integer num2 = 5; float f = num1.floatValue(); // 通过 Integer(5)对象的方法获得 float 数字 long d = num2.longValue(); // 通过 Integer(5)对象的方法获得 long 数字 System.out.println("Integer 转换为 float:" + f); System.out.println("integer 转换为 long:" + d); } }
- 代码第 ① 处创建 Integer(5) 对象,这种写法不推荐使用。
- 代码第 ② 处也是创建 Integer(5) 对象,将基本数据直接赋值给对象时,它会自动转换为对象。
程序运行结果如下:
Integer 转换为 float:5.0
integer 转换为 long:5
从基本数据类型到对象的转换
每一个数字包装类都提供一些静态 valueOf() 方法返回数字包装类对象。以 Integer 为例,方法定义如下:- static IntegervalueOf(int i):将 int 参数 i 转换为 Integer 对象。
- static IntegervalueOf(String s):将 String 参数 s 转换为 Integer 对象。
- static IntegervalueOf(String s, int radix):将 String 参数 s 转换为 Integer 对象,radix 是指定基数,用来指定进制,默认是 10,即十进制。
示例代码如下:
public class Main { public static void main(String args[]) { Integer num1 = Integer.valueOf(9); // 9 Double num2 = Double.valueOf(5); // 5.0 Float num3 = Float.valueOf("80"); // 80.0 System.out.println(num1); System.out.println(num2); System.out.println(num3); } }运行结果为:
9
5.0
80.0
将字符串转换为基本数据类型
每一个数字包装类都提供一些静态 parse×××() 方法将字符串转换为对应的基本数据类型。以 Integer 为例,方法定义如下:- static int parseInt(String s):将字符串 s 转换为有符号的十进制整数。
- static int parseInt(String s, int radix):将字符串 s 转换为有符号的整数,radix 是指定基数,基数用来指定进制。注意,这种指定基数的方法在浮点数包装类(Double 和 Float)中是没有的。
示例代码如下:
public class Main { public static void main(String args[]) { Integer num1 = Integer.valueOf("888", 16); // 2184 int num2 = Integer.parseInt("AB", 16); // 171 int num3 = Integer.parseInt("1001", 2); // 9 System.out.println(num1); System.out.println(num2); System.out.println(num3); } }运行结果为:
2184
171
9