String s1 = "ABC"; ⇒ (クラスに対して) 静的な "ABC" というリテラルを s1 に参照させる
String s1 = new String("ABC"); ⇒ "ABC" という文字列インスタンスを毎回生成して s1 に参照させる

コンパイラはソース中の同一文字列リテラルを一つにまとめてクラスファイルを作る。
duplicate string marge という奴。