为什么我在后续代码的不同JVM中得到不同的结果

ram*_*moh 0 java jvm

String s="hel"+"lo"

if(s == "hello")
 {
    //print true 

}
else
{
 //print false 
}
Run Code Online (Sandbox Code Playgroud)

Sun jvm = true Ibm jvm = false

为什么会出现这种差异?

Aja*_*rge 7

== 供参考比较.

对于Sun JVM,这种行为很可能是由于String池造成的.
对于IBM JVM,它可能是一个不同的实现.

如果需要对象比较使用 equals