Согласно String # intern () , intern
метод должен возвращать строку из пула строк, если строка найдена в пуле строк, в противном случае новый объект строки будет добавлен в пул строк и будет возвращена ссылка на эту строку.
Итак, я попробовал это:
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
закрытого метода, чтобы никто не мог получить к нему доступ. Или есть ли цель этого метода?