【发布时间】:2011-08-04 17:47:42
【问题描述】:
可能的重复:
Strings in Java : equals vs ==
Comparing strings in java
is == 可以应用于字符串吗?
如果是这样,那么它对 String 的数据类型有什么用?
换句话说虽然我们应该使用相等的方法来比较两个字符串java,但是==运算符在java中的String有什么用?
【问题讨论】:
标签: java operator-keyword
可能的重复:
Strings in Java : equals vs ==
Comparing strings in java
is == 可以应用于字符串吗?
如果是这样,那么它对 String 的数据类型有什么用?
换句话说虽然我们应该使用相等的方法来比较两个字符串java,但是==运算符在java中的String有什么用?
【问题讨论】:
标签: java operator-keyword
== 不会比较字符串的值,而是比较它的地址。如果要比较值,请使用 equals() 方法。
【讨论】:
当你想在 Java 中比较对象时,你应该使用equals() 方法。运算符 == 用于比较 Java 对象中的引用,而不是值。
例如:
String s1 = "hello";
String s2 = new String("hello");
boolean comp = s1.equals(s2); // correct, returns true
comp = s1 == s2; // wrong, returns false
【讨论】:
'==' 运算符比较两个 Object references。因此,在两个字符串的情况下,它会检查这些对象,并查看它们是否代表相同的内存中的位置。
.equals() 方法将 字符串的内容 相互比较。
【讨论】:
比较对象,== 运算符比较引用是否相同。在原始类型(int、float、double、boolean)中,它实际上比较了值。由于字符串是对象,因此最好使用 equals() 方法。 == 将比较两个字符串的引用是否相同,这可能不是。 Java Collections 也使用 equals() 方法。
【讨论】: