当前位置: 首页 > 知识库问答 >
问题:

比较对象和原语,使用操作符==在Java中是如何工作的?[副本]

常睿范
2023-03-14
Long objectLong = 555l;
long primitiveLong = 555l;

System.out.println(objectLong == primitiveLong); // result is true.

是否有调用ObjectLong.longValue()方法来比较Long和Long或其他方法?

共有1个答案

屠兴旺
2023-03-14

与以往一样,Java语言规范是可以参考的适当资源

来自JLS 15.21.1(“数值相等运算符==和!=”):

如果相等运算符的操作数都是数值型的,或者一个是数值型的,另一个是可转换(§5.1.8)为数值型的,则对操作数执行二进制数值提升(§5.6.2)。

    null
Long objectLong = 555l;
long primitiveLong = 555l;

// This unboxing is compiler-generated due to numeric promotion
long tmpLong = objectLong.longValue();

System.out.println(tmpLong == primitiveLong); 
 类似资料: