1215. Что делает метод intern() в классе String?
Метод intern() в классе String позволяет добавить строку в пул строк и вернуть ссылку на эквивалентную строку из пула. Если в пуле уже содержится строка эквивалентная текущей, то метод intern() возвращает ссылку на эту строку из пула вместо создания новой строки. Это позволяет эффективно использовать память и сравнивать строки с помощью оператора ==, потому что для эквивалентных строк == возвращает true. Вот простой пример использования метода intern():
String s1 = "hello";
String s2 = new String("hello");
if (s1 == s2) {
// Этот блок кода не будет выполнен, потому что s1 и s2 имеют разные ссылки }
String s3 = s2.intern();
if (s1 == s3) {
// Этот блок кода будет выполнен, потому что s3 содержит ссылку на строку "hello" из пула строк }
В этом примере s1 и s2 содержат эквивалентные строки, но имеют разные ссылки, поэтому оператор == не сработает для сравнения этих строк. Однако, после вызова intern() для s2, s3 содержит ссылку на ту же самую строку "hello" из пула строк, что и s1, поэтому оператор == будет возвращать true для этих переменных.
1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions
Tелеграмм канал: https://t.me/DEBAGanov
Мое резюме: https://github.com/DEBAGanov