如果我在java中使用==运算符而不是equals()方法比较字符串是错误的

时间:2013-09-26 04:50:19

标签: java string comparison

据我所知

==用于比较参考文献。 .equals()用于比较内容。

java中有一个字符串池。 例如,我创建了一个字符串,如下所示

String s ="ABC";然后地址为12345

当我使用相同的字符串,即“ABC”时,相同的字符串将在两个地方共享。这意味着两个字符串的地址都相同。

==用于比较引用。在这种情况下,两个字符串的地址都是相同的。那么为什么我需要使用equals()方法。如果我错了,请纠正我。

public class StringComparison {

public static void main(String[] args)
{
    String s1 ="test";
    String s2 = "test";

    if(s1 == s2)
        System.out.println("BOTH ARE  == ");
    else
        System.out.println("BOTH ARE != ");


    String s3 = new String("test");
    String s4 = new String("test");

    if(s3 == s4)
        System.out.println("BOTH ARE  == ");
    else
        System.out.println("BOTH ARE != ");

  }
}

OUTPUT:
BOTH ARE  == 
BOTH ARE != 

但参考链接显示new String("test") == new String("test") ==> false

0 个答案:

没有答案