Java 中 为什么 Long 用== 有时候返回true 有时候事false

发布时间 2023-11-14 16:33:10作者: 八英里

今天做项目的时候一直跑不出想要的结果,最后才发现是一处判断语句出了问题。有两个Long类型的变量初始赋值都为10000,但用“==”来判断结果却是判断它们不相等。

Long中有⼀个静态的内部类LongCache,专门⽤于缓存-128⾄127之间的值,⼀共256个元素。如果值在[-128, 127]之间,会放在缓存⾥⾯,此时用“==”可以判断两个变量相等。⽽超过这个范围就要new⼀个新的对象,也就是说"=="不能判断对象是否相等。

后来改成equals()来判断,最终才运行成功。
————————————————
版权声明:本文为CSDN博主「padDio」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Ydin00/article/details/124991980