String#intern()によると、internメソッドは、文字列が文字列プールにある場合、文字列プールから文字列を返すことになっています。そうでない場合、新しい文字列オブジェクトが文字列プールに追加され、この文字列の参照が返されます。
だから私はこれを試しました:
String s1 = "Rakesh";
String s2 = "Rakesh";
String s3 = "Rakesh".intern();
if ( s1 == s2 ){
    System.out.println("s1 and s2 are same");  // 1.
}
if ( s1 == s3 ){
    System.out.println("s1 and s3 are same" );  // 2.
}s1 and s3 are sames3がインターンされたときに印刷され、s1 and s2 are same印刷されないことを期待していました。しかし、結果は次のとおりです。両方の行が印刷されます。つまり、デフォルトでは文字列定数がインターンされます。それがそうであるなら、なぜ我々は必要なのですintern方法を?つまり、このメソッドをいつ使用すればよいのでしょうか。
internパブリックメソッドを使用するのでしょうか。internプライベートメソッドを使用して、誰もアクセスできないようにするべきではありません。または、この方法の目的はありますか?
                