The reason beeing is the compiler. At compile time the compiler does notice that the literal Hi
exists twice in the code and does intern this string for your specific class.
After compilation both of your interned strings Hi
are pointing to the same reference of Hi
. That´s the reason why the second print results in true
.
The split
doesn´t know it´s result and creates new references for the corresponding Strings
. That´s the reson why Hi
from the split and the literal Hi
are not using the same reference.
solved String array vs String split array [duplicate]