java里Integer类在-128和127之间为啥能直接用==比较,好像还只能在自动装箱的时候是吗?求详解,谢谢啦!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java里Integer类在-128和127之间为啥能直接用==比较,好像还只能在自动装箱的时候是吗?求详解,谢谢啦!相关的知识,希望对你有一定的参考价值。
因为Integer实现的时候 对于-128 到127之间的值会做缓存处理比如 Integer i=100,j=100;
那么j实际上就是指向的i,因为i缓存了
如果Integer i=200,j=200;
这时候不会缓存,会新建一个对象200,
所以第一次 i==j为真
第二次 i==j为假 参考技术A ==是比较数值的。如果是Integer实例,那就是比较他们的内存地址的整数值。
Integer 是啥类型?
参考技术A Integer是引用类型Integer
类在对象中包装了一个基本类型
int
的值。
Integer
类型的对象包含一个
int
类型的字段。
此外,该类提供了多个方法,能在
int
类型和
String
类型之间互相转换,还提供了处理
int
类型时非常有用的其他一些常量和方法。
以上是关于java里Integer类在-128和127之间为啥能直接用==比较,好像还只能在自动装箱的时候是吗?求详解,谢谢啦!的主要内容,如果未能解决你的问题,请参考以下文章
Java Integer(-128~127)值的==和equals比较产生的思考