Відповідно до String # intern () , intern
метод повинен повернути String з пулу String, якщо String знайдений у пулі String, інакше в рядок String буде доданий новий об'єкт рядка та повернеться посилання на цю String.
Тому я спробував це:
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.
}
Я очікував, що s1 and s3 are same
він буде надрукований, коли s3 інтернований, і s1 and s2 are same
не буде надрукований. Але результат такий: обидва рядки надруковані. Отже, це означає, що за замовчуванням струнні константи інтерновані. Але якщо це так, то навіщо нам потрібен intern
метод? Іншими словами, коли нам слід використовувати цей метод?
intern
як публічний метод. Чи не мав би ми бути intern
приватним методом, щоб ніхто не мав до нього доступу. Або є якась мета цього методу?