java中Long用==比较大小的问题(踩坑分享)

今天写项目时,把两个Long型对象用==比较,以为会自动拆箱,直接比较数值大小,但是发现比较结果有问题,分享一下问题原因。

Long中有一个静态的内部类LongCache,用于缓存-128-127之间的值,一共256个元素

本来就是比较内存地址,缓存了的256个元素,内存地址相同的返回true,之外没有缓存是false。

以后建议使用equals方法或者longValue方法比较大小。

你可能感兴趣的:(JavaSE,java)