演示与Java的字符串比较

Jér*_*ôme 7 java string comparison equals

我想用Java中的几行代码来演示,比较两个字符串(String),你必须使用equals()而不是运算符==.

这是我尝试过的东西:

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");
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

tan*_*ens 17

编译器做了一些优化,你的情况,以便s1s2真的是同一个对象.你可以通过使用来解决这个问题

String s1 = new String( "Hello" );
String s2 = new String( "Hello" );
Run Code Online (Sandbox Code Playgroud)

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