int和Integer的区别

    如果面试官问Integer与int的区别:估计大多数人只会说道两点,Ingeter是int的包装类,int的初值为0,Ingeter的初值为null。如果再问一下其他的,估计更多的人会头脑一片混乱。所以我对它们进行了总结,希望对大家有帮助。

1.int与Integer、new Integer 

int k=12;
Integer k1=12;
Integer k2 = new Integer(12);

System.out.println((k==k1)+"结果为true:integer会进行拆箱为int");
System.out.println((k==k2)+"结果为true:integer会进行拆箱为int");

 

2.Integer 和 Integer 

Integer g1=127;
Integer g2=127;
System.out.println((g1==g2)+"结果为true");

Integer g3=128;
Integer g4=128;
System.out.println((g3==g4)+"结果为false");
/*
* 这里是个重点,g1、g2结果为true,Integer不在拆箱,代码经过编译为Integer.valueOf(i),
* 因为第一个integer会将值写入缓存池,
* 在声明一个一样的会在缓存中直接取,
* 所以为true。
* 而超过-128---127的范围会开辟新的内存。
*/

3.其他

integer 和new integer 不会为true,前者在缓存中,后者在堆中,内存地址不一样

new integer和new integer 内存地址不一样。

转载于:https://www.cnblogs.com/zhangheliang/p/5825510.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值