De acuerdo con String # intern () , internse supone que el método devuelve el String del conjunto de String si el String se encuentra en el conjunto de String; de lo contrario, se agregará un nuevo objeto de string en el conjunto de String y se devolverá la referencia de este String.
Entonces 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.
}
Esperaba que s1 and s3 are samese imprimiera cuando s3 está internado y s1 and s2 are sameno se imprimirá. 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í, ¿por qué necesitamos el internmétodo? En otras palabras, ¿cuándo debemos usar este método?
interncomo método público? ¿No deberíamos tener internun método privado para que nadie pueda tener acceso a él? ¿O hay algún propósito de este método?
