每日回顾int与Integer的区别

int:是基本数据类型,在变量中直接存放数值,初始化值0;

integer:是引用数据类型,在变量中存放的是该对象的引用,初始化时值为null;

Integer int 类型的包装类,将 int 封装成 Integer ,符合 java 面向对象的特性,可以使用各种方法比如和
其他数据类型间的转换
Integer int 的深入对比:
1. 两个通过 new 生成的 Integer 对象,由于在堆中地址不同,所以永远不相等
2. int Integer 比较时,只要数值相等,结果就相等,因为包装类和基本数据类型比较时,会自动拆 箱,将Integer 转化为 int
3. 通过 new 生成的 Integer 对象和非通过 new 生成的 Integer 对象相比较时,由于前者存放在堆中,后
者存放在 Java 常量池中,所以永远不相等
4. 两个非通过 new 生成的 Integer 对象比较时,如果两个变量的数值相等且在 -128 127 之间,结果就 相等。这是因为给Integer 对象赋一个 int 值, java 在编译时,会自动调用静态方法 valueOf() ,根据
java api 中对 Integer 类型的 valueOf 的定义,对于 -128 127 之间的整数,会进行缓存,如果下次再
赋相同的值会直接从缓存中取,即享元模式
int 是基本数据类型, Integer int 的封装类,是引用类型。 int 默认值是 0 ,而 Integer 默认值
null ,所以 Integer 能区分出 0 null 的情况。一旦 java 看到 null ,就知道这个引用还没有指向某个
对象,再任何引用使用前,必须为其指定一个对象,否则会报错
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值