Kiedy powinniśmy użyć metody intern w String na literałach String

WedługString # intern (), intern metoda powinna zwrócić String z puli String, jeśli String jest znaleziony w puli String, w przeciwnym razie nowy obiekt łańcucha zostanie dodany do puli String i zostanie zwrócone odwołanie do tego String.

Więc spróbowałem tego:

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.
}

Spodziewałem się tegos1 and s3 are same zostanie wydrukowany jako s3 jest internowany is1 and s2 are same nie zostanie wydrukowany. Ale rezultat jest następujący: obie linie są drukowane. Oznacza to, że domyślnie stałe String są internowane. Ale jeśli tak jest, to dlaczego potrzebujemyintern metoda? Innymi słowy, kiedy powinniśmy użyć tej metody?

questionAnswers(13)

yourAnswerToTheQuestion