文字列の同値・非同値に関しては言語仕様で決まってるんだからそれを参照しろよ。
「Java 言語仕様 3.10.5 文字列リテラル」より。

同じパッケージ(7.)の同じクラス内(8.)のリテラル文字列は,同じオブジェクト String(4.3.1)への参照を表現する。
同じパッケージの異なるクラス内のリテラル文字列は,同じオブジェクト String への参照を表現する。
異なるパッケージの異なるクラス内のリテラル文字列は,同様に,同じオブジェクト String への参照を表現する。
定数式(15.27)によって計算される文字列は,コンパイル時に計算され,それらがリテラルであるかのように扱われる。
実行時に計算される文字列は,新しく生成されるものであって,別の文字列とする。
計算された文字列を明示的に収容した結果は,同じ内容をもつ既存のリテラル文字列と同じ文字列とする。