【发布时间】:2014-08-12 07:48:16
【问题描述】:
为什么 == 运算符对引用的行为与对原始数据类型的行为不同?
String string1 = "myString";
String string2 = "myString";
int num1 = 10;
int num2 = 10;
System.out.println("Value is "+string1==string2); //WORKS FINE
System.out.println("Value is "+num1==num2); //COMPILE TIME ERROR
我无法找出这背后的任何合乎逻辑的原因。
PS:打印语句中的括号是故意不使用的。
谢谢:)
【问题讨论】:
-
如果您想到
==运算符比较引用的值,这是有道理的。因此,在所有情况下,==运算符都会比较其操作数的值。此外,您所拥有的是操作顺序问题,而不是==运算符的问题。
标签: java operator-keyword equality