我在Java中连接字符串并将其与自身进行比较,等于返回false.为什么?

ale*_*308 -2 java

我运行了以下代码:

 String s1 = "Hello";
 if(s1.equals(s1.concat(" World"))) 
 System.out.println("true");
 else
 System.out.println("false");
Run Code Online (Sandbox Code Playgroud)

输出是"假".为什么s1不等于自己?

wer*_*ero 5

s1 等于自己.

s1.concat(" World")不修改s1但返回一个不等于的新String对象s1.