Java 自动拆装箱

自动拆装箱

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

自动装箱:把基本类型自动转换成包装类型的过程

自动拆箱:把包装类型自动转换成基本类型的过程

Integer i = 1;//自动装箱
int b = i;//自动拆箱

int 的自动装箱是通过Integer.valueOf()实现的。

Integer i = Integer.ValueOf(1);

Integer的自动拆箱是通过i.intValue()实现的

int b=i.intValue(); 

注:
Java中 “==” 比较的是对象,equals比较的是值。
自动拆装箱与缓存机制(仅在自动拆装箱时可用),
例如:当Integer类型的对象数值在-128到+127之间时进行装箱,整形对象在内部实现相同对象的引用实现缓存和重用。

public class Main {


    public static void main(String[] arges) {

        Integer integer1 = 3;
        Integer integer2 = 3;

        if (integer1 == integer2)
            System.out.println("integer1 == integer2");
        else
            System.out.println("integer1 != integer2");

        Integer integer3 = 300;
        Integer integer4 = 300;

        if (integer3 == integer4)
            System.out.println("integer3 == integer4");
        else
            System.out.println("integer3 != integer4");

    }
}

输出:
在这里插入图片描述
弊端:
由于自动拆箱,如果包装类对象为null,那么自动拆箱时就有可能抛出NPE。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值