Java中int和integer的区别

这篇博客探讨了Java中基本数据类型int和其包装类Integer的区别,包括默认值、内存分配、对象比较和自动装箱拆箱的细节。在对象比较时,由于Integer的缓存机制,对于-128到127之间的值,比较结果可能为true,而大于这个范围的值则会产生不同的对象地址,导致比较为false。
摘要由CSDN通过智能技术生成
  1. integer是int的包装类(属于引用数据类型),而int是Java的基本数据类型
  2. Integer的默认值是null,int的默认值是0
  3. Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值

1.new两个相同value的integer变量进行比较,会发现返回结果为false,这是因为new生成的两个integer指向不同的地址,而引用数据类型比较时实际是比较地址是否相同。

2.非 new 生成的 Integer 变量与 new Integer() 生成的变量比较,结果为 false,这是因为非 new 生成的 Integer 变量指向的是 java 常量池中的对象,而new Integer()生成的变量指向堆中新建的对象,两者在内存中的地址不同。所以输出为 false。

3.两个非 new 生成的 Integer 对象进行比较,如果两个变量的值在区间[-128,127]之间,比较结果为 true否则,结果为 false

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值