【Java SE】包装器

Java 中,每种基本数据类型都有一个对应的类。例如,int 对应于 Integer 类。其他基本数据类型也有类似的对应关系,如下表所示。这些类被称为 “包装器(Wrapper)”。包装器类的作用是对基本数据类型进行封装,并提供额外的功能。这些功能包括方法和属性,旨在支持更广泛的使用场景。通过使用包装器,我们可以更方便地处理数据,比如将基本类型转换为对象、进行集合操作等。

注意:包装器类是不可变的,一旦构造了包装器,就不允许更改包装在其中的值。同时,包装器类还是final类型,因此不能派生子类。

基本数据类型包装类
booleanBoolean
charCharacter
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble

一、装箱与拆箱

Java 中,将基本数据类型转换为对应的包装器类型的过程称为“装箱”,而将包装器类型转换回基本数据类型的过程称为“拆箱”。在 JDK 5 之前,装箱和拆箱需要手动进行,这通常涉及调用 valueOf 方法。自 JDK 5 起,Java 引入了自动装箱和拆箱的特性,使得这一过程变得更加简单和方便。尽管如此,自动装箱和拆箱的底层实现仍然是调用 valueOf 方法。下面是 int 类型手动装拆箱与自动装拆箱的代码示例。

// 手动装箱
int n1 = 100;
Integer integer11 = new Integer(n1);
Integer integer12 = Integer.valueOf(n1);
// 手动拆箱
int m1 = integer11.intValue();

// 自动装箱与拆箱
int n2 = 200;
Integer integer2 = n2; // 底层使用 Integer.valueOf(n2);
int m2 = integer2; // 底层使用 intValue();

注意:1)包装类引用可以为 null,自动装箱有可能抛出异常;2)如果混合使用 IntegerDouble 类型,Integer 值会先拆箱,提升为 double,再装箱为 Double;3)装箱和拆箱由编译器执行,而不是虚拟机,编译器生成类的字节码时会插入必要的方法调用,虚拟机负责执行字节码。

二、字符串转换数值

当我们需要将一个数字字符串转换为数值时,使用包装类的静态方法会非常方便。例如,要将数字字符串 s 转换为整数,可以使用 Integer.parseInt(s) 方法。其他数值类型的包装类也提供了类似的转换方法,方便我们进行不同类型的数值转换。

String s = "123456";
int x = Integer.parseInt(s);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值