Integer与Int的区别

1、Integer是int提供的封装类,而int是Java的基本数据类型

2、Integer默认值是null,而int默认值是0;

3、声明为Integer的变量需要实例化,而声明为int的变量是不需要实例化的

4、Integer是对象,用一个引用指向这个对象,而int是基本类型,直接存储数值

(原始类型:boolean, char , byte , short , int ,long , float , double

   封装类型:Boolean, Character, Byte, Short , Integer, Long, Float, Double)

java 中的基本数据类型只有以上8个,除了基本类型,剩下的都是引用类型。

5、无论如何,Integer与new Integer不会相等,不会经历拆箱过程,new出来的对象存放在堆中,非new的Integer常量则放在常量池(方法区),他们的内存地址不一样,所以为false。

6、两个都是非new出来的Integer,如果数在-128到127之间,则是true,否则为false。因为Java在编译Integer i2=128的时候,被翻译成:Integer i2 = Integer.valueOf(128);而valueOf()函数会对-128到127之间的数进行缓存

7、两个都是new出来的,都是false,还是内存地址不一样

8、int和integer(无论new否)比,都为true,因为会把Integer自动拆箱为int 再去比。

所以对于Integer的判断用equals()比较

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值