Secondo String # intern () , il intern
metodo dovrebbe restituire la stringa dal pool String se la stringa viene trovata nel pool String, altrimenti un nuovo oggetto stringa verrà aggiunto nel pool String e verrà restituito il riferimento di questa stringa.
Quindi ho provato questo:
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.
}
Mi aspettavo che s1 and s3 are same
verrà stampato come s3 è internato e s1 and s2 are same
non verrà stampato. Ma il risultato è: entrambe le linee sono stampate. Ciò significa che, per impostazione predefinita, le costanti String vengono internate. Ma se è così, allora perché abbiamo bisogno del intern
metodo? In altre parole, quando dovremmo usare questo metodo?
intern
come metodo pubblico. Non dovremmo avere intern
un metodo privato, in modo che nessuno possa accedervi. O c'è qualche scopo di questo metodo?