Відповідно до 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приватним методом, щоб ніхто не мав до нього доступу. Або є якась мета цього методу?
