可能重复:
Strings in Java : equals vs ==
Comparing strings in java
是==可以适用于字符串吗?
如果是,那么它对String的数据类型有什么用?
换句话说,虽然我们应该使用相等的方法来比较两个字符串java,但在java中使用String的==运算符有什么用?
答案 0 :(得分:3)
==不会比较String的值而是它的地址。如果要比较值,请使用方法equals()。
答案 1 :(得分:1)
如果要比较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
答案 2 :(得分:0)
'=='运算符会比较两个对象引用。因此,在两个字符串的情况下,它正在检查这些对象,并查看它们是否代表内存中相同的位置。
.equals()方法将字符串的内容相互比较。
答案 3 :(得分:0)
比较对象,==运算符比较引用是否相同。在原始类型(int,float,double,boolean)中,它实际上比较了该值。由于字符串是对象,因此最好使用equals()方法。 ==将比较两个字符串的引用是否相同,哪些可能不相同。 Java Collections也使用equals()方法。