Java的自动封箱和自动拆箱

Java的自动封箱和自动拆箱

1.为啥要封箱

下边是我查阅资料的原因:

Java中的封箱指的是将基本数据类型转换为对应的包装类,例如将int类型转换为Integer类型。Java中的封箱有以下几个原因:

(1)泛型:Java中的泛型只能使用类,而不能使用基本数据类型。如果需要使用基本数据类型,就必须使用其对应的包装类进行封箱操作。

(2)为了方便操作:Java中的包装类提供了许多实用的方法,可以方便地进行数据操作。例如,Integer类提供了parseInt()方法,可以将一个字符串转换为整数。

(3)可以为null赋值:基本数据类型不能为null,但是包装类可以为null赋值。这在某些情况下非常方便,例如在数据库中存储空值时,可以使用包装类来表示。

然后用通俗的讲法说这个封箱和拆箱的意思就是,你这个基本数据类型,相当于散娄子薯片,你想卖给别人,那你就得整个包装袋,让人知道这是薯片,标注好对应信息之类的东西,比如原料啥的,类似于乐事薯片的包装袋,然后人家才能去买回来,打开袋子吃薯片,封箱和拆箱就是这么个过程。、

后边这个勾八东西应该还涉及到面试题,我先给它放这里,回头我再看(来自Java八股文):

6、什么是自动拆装箱 int和Integer有什么区别 难度系数:⭐
基本数据类型,如int,float,double,boolean,char,byte,不具备对象的特征,不能调用方法。

装箱:将基本类型转换成包装类对象
拆箱:将包装类对象转换成基本类型的值
java为什么要引入自动装箱和拆箱的功能?主要是用于java集合中,List list=new ArrayList();

list集合如果要放整数的话,只能放对象,不能放基本类型,因此需要将整数自动装箱成对象。

实现原理:javac编译器的语法糖,底层是通过Integer.valueOf()和Integer.intValue()方法实现。

区别:

Integer是int的包装类,int则是java的一种基本数据类型
Integer变量必须实例化后才能使用,而int变量不需要
Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值
Integer的默认值是null,int的默认值是0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值