文字列の不変性に関しては多くの質問がありますが、次のことが起こる理由についてはまだ答えが見つかりません。
1) "TEST".equals("TEST") // TRUE obviously
2) "TEST" == "TEST" // Also TRUE since String's are immutable
3) "TEST" == "T" + "E" + "S" + "T" // TRUE, but why? Due to compiler optimalization?
4) "TEST" == new String("TEST"); // FALSE, because you explicitly request a new String?
必要に応じて誰かが私を修正し、3 と 4 をさらに詳しく説明できますか? どうもありがとう!