Według String # intern () , internmetoda ma powrócić String z puli String Jeśli łańcuch znajduje się w basenie String, w przeciwnym razie nowy obiekt zostanie dodany ciąg w puli ciąg i odniesienie ten ciąg jest zwracany.
Więc próbowałem tego:
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.
}
Spodziewałem się, że s1 and s3 are samezostanie wydrukowany, ponieważ s3 jest internowany i s1 and s2 are samenie zostanie wydrukowany. Ale wynik jest taki: obie linie są drukowane. Oznacza to, że domyślnie stałe String są internowane. Ale jeśli tak, to dlaczego potrzebujemy tej internmetody? Innymi słowy, kiedy powinniśmy skorzystać z tej metody?
interntaką metodę publiczną? Czy nie powinniśmy stosować internmetody prywatnej, aby nikt nie miał do niej dostępu? Czy jest jakiś cel tej metody?
