小编典典

演示与Java的字符串比较

java

我想用几行代码来说明Java中要比较两个字符串(String),必须使用equals()而不是operator ==

这是我尝试过的东西:

public static void main(String Args[]) {
   String s1 = "Hello";
   String s2 = "Hello";

   if (s1 == s2)
      System.out.println("same strings");
   else
      System.out.println("different strings");
}

我期待的输出是:different strings,因为在测试中,s1 == s2我实际上是在比较两个引用(即地址)而不是对象的内容。

但事实上,我这样的输出:same strings

浏览我发现,一些Java实现将优化上述代码,以便在互联网s1s2 实际引用相同的字符串。

好吧,==当在Java中比较字符串(或对象)时,如何使用运算符演示问题?


阅读 223

收藏
2020-09-23

共1个答案

小编典典

编译器做了一些优化,你的情况,以便s1s2真的是同一个对象。您可以使用解决此问题

String s1 = new String( "Hello" );
String s2 = new String( "Hello" );

然后,您将拥有两个具有相同文本内容的不同对象。

2020-09-23