Добавить в корзинуПозвонить
Найти в Дзене
DEBAGanov

Java 929. Что делает метод intern()?

Метод intern() в Java используется для уменьшения использования памяти при работе со строками. Он возвращает ссылку на объект строки из пула, если такой объект уже существует в пуле, иначе добавляет его в пул и возвращает ссылку на него. Если вы работаете со строками, которые могут иметь одинаковые значения, вызов метода intern() для каждой из них может помочь уменьшить нагрузку на память и ускорить выполнение кода, т.к. меньше объектов будет создано и собрано сборщиком мусора. Вот пример использования метода intern(): String str1 = "hello";
String str2 = new String("hello");
String str3 = str2.intern();
System.out.println(str1 == str2); // false System.out.println(str1 == str3); // true Здесь мы создаем 3 строки: первая создается с помощью литерала, вторая создается с явным вызовом конструктора, а третья получается путем вызова intern() на второй строке. Т.к. первая и третья строки имеют одинаковые значения, они ссылаются на один и тот же объект в пуле строк, в то время как вторая

Метод intern() в Java используется для уменьшения использования памяти при работе со строками. Он возвращает ссылку на объект строки из пула, если такой объект уже существует в пуле, иначе добавляет его в пул и возвращает ссылку на него. Если вы работаете со строками, которые могут иметь одинаковые значения, вызов метода intern() для каждой из них может помочь уменьшить нагрузку на память и ускорить выполнение кода, т.к. меньше объектов будет создано и собрано сборщиком мусора.

Вот пример использования метода intern():

String str1 = "hello";
String str2 = new String("hello");
String str3 = str2.intern();

System.out.println(str1 == str2); // false
System.out.println(str1 == str3); // true

Здесь мы создаем 3 строки: первая создается с помощью литерала, вторая создается с явным вызовом конструктора, а третья получается путем вызова intern() на второй строке. Т.к. первая и третья строки имеют одинаковые значения, они ссылаются на один и тот же объект в пуле строк, в то время как вторая строка создает свой собственный объект.

1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions

Tелеграмм канал: https://t.me/DEBAGanov

Мое резюме: https://github.com/DEBAGanov