Quando devemos usar o método interno de string em literais de string
De acordo comCadeia # interna (), intern
método deve retornar a String do conjunto de Cadeias se a Cadeia de caracteres estiver localizada em Cadeia de Caracteres, caso contrário, um novo objeto de cadeia de caracteres será incluído no conjunto de Cadeias e a referência dessa Cadeia será retornada.
Então eu tentei isso:
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.
}
Eu estava esperando issos1 and s3 are same
será impresso como s3 está internado, es1 and s2 are same
não será impresso. Mas o resultado é: ambas as linhas são impressas. Então, isso significa que, por padrão, constantes String são internadas. Mas se é assim, então por que precisamos dointern
método? Em outras palavras, quando devemos usar esse método?