Java-基础篇-数据类型-装箱与拆箱

装箱和拆箱

       Java数据类型中的8种简单类型分别为:boolean、byte、char、short、int、long、float和double,Java类库的java.lang包中定义了8种包装(wrapper):Boolean、Byte、Character、Short、Integer、Long、Float和Double。

基本数据类型包装类基本数据类型包装类
booleanBooleanbyteByte
charCharactershortShort
intIntegerlongLong
floatFloatdoubleDouble

       简单数据类型直接存储堆栈,可以实现高效率处理,而对应的引用类型则封装了许多方法,可以实现额外的处理功能。有时候,需要在简单类型与其对应的引用类型之间进行转换。

       通过装箱(boxing)和拆箱(unboxing)操作机制,可以实现简单类型和引用类型之间的转换。

       装箱转换是指将一个简单类型隐式或显式地转换成对应的包装类型。把一个简单类型的值装箱,就是创建一个对应的包装类的实例(也称为“箱子”),并将这个值复制给这个对象,装箱后对应的包装类的实例对象存储在堆中。

       拆箱转换是指将一个包装类的实例对象类型转换成一个简单类型。拆箱过程一般分成两步:首先,检查这个对象实例(“箱子”),看它是否为给定的值类型的装箱值。然后,把这个对象实例的值复制给类型的变量。

       装箱转换把简单类型转换为引用类型后,可以方便地调用相应对象实现的方法。值得注意的是,装箱和拆箱操作会导致额外的系统开销。

装箱和拆箱示例:

public static void main(String[] args){
	int i = 123;
	Integer obj1 = i;                    //隐式装箱(boxing)
	Integer obj2 = (Integer)i;           //显式装箱(boxing)
	int j = obj1;                        //隐式拆箱(unboxing)
	int k = (int)obj2;                   //显式拆箱(unboxing)
	System.out.println("The value-type value(j) = " + j);
	System.out.println("The value-type value(k) = " + k);
	System.out.println("The object-type value(obj1) = " + obj1.toString());
	System.out.println("The object-type value(obj2) = " + obj2.toString());
}

运行结果如下所示:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值