¿Cuándo debemos usar el método interno de String en cadenas literales?

De acuerdo aCadena # interno (), intern se supone que el método devuelve la Cadena del grupo de cadenas si se encuentra en el Grupo de cadenas; de lo contrario, se agregará un nuevo objeto de cadena en el Grupo de cadenas y se devolverá la referencia de esta cadena.

Así que intenté esto:

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

Estaba esperando ques1 and s3 are same se imprimirá a medida que se interne s3, ys1 and s2 are same no será impreso Pero el resultado es: ambas líneas se imprimen. Eso significa que, por defecto, las constantes de cadena están internadas. Pero si es así, entonces ¿por qué necesitamos laintern ¿método? En otras palabras, ¿cuándo debemos usar este método?

Respuestas a la pregunta(13)

Su respuesta a la pregunta