JAVA - 为什么==“1”返回false

时间:2012-12-24 03:47:47

标签: java

  

可能重复:
  String is not equal to string?
  What makes reference comparison (==) work for some strings in 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 ==运算符重载以比较字符串的内容。

2 个答案:

答案 0 :(得分:3)

使用"1".equals(a),String是一个对象,因此请使用equals()进行比较

答案 1 :(得分:0)

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

对象a与常量字符串"1"不是同一个对象。

所以返回false