博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java中int和Integer对比的一些坑
阅读量:6200 次
发布时间:2019-06-21

本文共 751 字,大约阅读时间需要 2 分钟。

--------------------- 

作者:狂飙的yellowcong 
来源:CSDN 
原文:https://blog.csdn.net/yelllowcong/article/details/78434606 
版权声明:本文为博主原创文章,转载请附上博文链接!

--------------------- 

Integer与int类型的关系

Integer是int的包装类,int的默认值是0,而Integer的默认值是null(jdk1.5的新特性 自动装箱和拆箱,Integer.valueOf() 和xx.intValue() ),

需要注意的是Integer里面默认的缓存数字是-128-127,

1、Integer与Integer相互比较,数据在-128-127范围内,就会从缓存中拿去数据,比较就相等;如果不在这个范围,就会直接新创建一个Integer对象,使用 == 判断的是两个内存的应用地址,所以自然不相等。

2、Integer和int类型相比,在jdk1.5,会自动拆箱,然后比较栈内存中的数据,所以没有不想等的情况

int跟int比较

int数据类型,都是在栈内存中存储,如果这个数字在栈内存中存在就会直接指向这个内存地址,如果不存在,就会重新开辟内存空间,所以int和int类型的比较,相同的值不会存在内存不等的情况

八个基本数据类型不能看作对象(这点很特殊),存放在栈中。栈内操作速度快,创建销毁很容易

 

 

int跟Integer比较

会自动拆箱,变成int与int对比

 

Integer跟Integer比较

  在-128~127的范围内,==会相等,获取的cache的地址

  不在上述范围内,会去new一个对象对比

  直接new对象的话,肯定不等于

 

 

虽千万人,吾往矣!
你可能感兴趣的文章
初始编码
查看>>
File 需要的空间
查看>>
数据连接 DataDirectory 中的作用
查看>>
Struts2
查看>>
算术运算符和三元运算符
查看>>
七种引起偏头痛的常见食物
查看>>
利用VS2005调节dump文件
查看>>
BZOJ 1430 小猴打架
查看>>
2018.12.4 队测总结+题解
查看>>
【Linux】Centos7安装之后,双系统的情况下,怎么能在CentOS7下访问Windows的磁盘...
查看>>
Java中的数值和集合
查看>>
Code4 APP
查看>>
@synchronized(self)
查看>>
linux——攻防技术介绍|主动攻击|被动攻击
查看>>
线段树复合标记
查看>>
thinkphp使用模块/控制器/操作访问时出现No input file specified.解决方式
查看>>
软件工程概论第一章概括
查看>>
mac 上面安装jdk 1.6
查看>>
概念辨析-Hardware Description还是Hardware Developing?
查看>>
安装MySql数据库
查看>>