Według String # intern () , intern
metoda 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 same
zostanie wydrukowany, ponieważ s3 jest internowany i s1 and s2 are same
nie 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 intern
metody? Innymi słowy, kiedy powinniśmy skorzystać z tej metody?
intern
taką metodę publiczną? Czy nie powinniśmy stosować intern
metody prywatnej, aby nikt nie miał do niej dostępu? Czy jest jakiś cel tej metody?