什么时候可以使用“ ==”运算符?

发布于 2021-01-29 20:48:05

我从jls找到了报价:

相等运算符可用于比较两个可转换(第5.1.8节)为数字类型的操作数,或两个boolean或Boolean类型的操作数,或
两个分别为引用类型或null类型的操作数 。所有其他情况都会导致编译时错误。

但是这段代码

   String str= "";
   Number num = 1;
   System.out.println(str == num);

每个操作数都是参考!

说这是不兼容的类型。

jls在哪里说这些类型应该兼容?

关注者
0
被浏览
93
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    15.21.3节(参考相等运算符==和!=)中:

    如果无法通过强制转换将任何一个操作数的类型转换为另一个操作数的类型,则将发生编译时错误(第5.5节)。两个操作数的运行时值必然不相等。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看