Secondo String # intern () , il internmetodo 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 sameverrà stampato come s3 è internato e s1 and s2 are samenon 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 internmetodo? In altre parole, quando dovremmo usare questo metodo?
interncome metodo pubblico. Non dovremmo avere internun metodo privato, in modo che nessuno possa accedervi. O c'è qualche scopo di questo metodo?
