Laut String # intern () soll die intern
Methode den String aus dem String-Pool zurückgeben, wenn der String im String-Pool gefunden wird. Andernfalls wird ein neues String-Objekt im String-Pool hinzugefügt und die Referenz dieses Strings zurückgegeben.
Also habe ich das versucht:
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.
}
Ich hatte erwartet, dass s1 and s3 are same
das gedruckt wird, wenn s3 interniert ist, und s1 and s2 are same
nicht gedruckt wird. Das Ergebnis ist jedoch: Beide Zeilen werden gedruckt. Das heißt, standardmäßig werden String-Konstanten interniert. Aber wenn ja, warum brauchen wir dann die intern
Methode? Mit anderen Worten, wann sollten wir diese Methode anwenden?
intern
eine öffentliche Methode? Sollten wir nicht intern
als private Methode haben, damit niemand Zugriff darauf haben könnte. Oder gibt es einen Zweck dieser Methode?