-5

可能重复:
字符串不等于字符串?
是什么让参考比较 (==) 对 Java 中的某些字符串起作用?

有人可以按照java代码解释我吗

String a = "1";
if(a == "1") {
//print compare 1 is true;
} else { 
//print compare 1 is false;
}

if(a.equals("1")) {
//print compare 2 is true;
} else { 
//print compare 2 is false;
}

结果就像

compare 1 is false
compare 2 is true

我唯一的解释是它比较内存地址而不是值本身。但我不确定。可以请一些人把它点亮。在 .Net == 运算符被重载以比较字符串的内容。

4

2 回答 2

3

use "1".equals(a), String 是一个对象,所以equals()用来比较

于 2012-12-24T03:48:42.650 回答
0

我知道==运算符是比较“它是同一个对象吗?”

对象a与常量字符串不同"1"

所以返回假

于 2012-12-24T03:50:49.963 回答