Найти тему
DEBAGanov

Java 1215. Что делает метод intern() в классе String?

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