В чем заключается концепция пула строк в Java?



Пул строк в Java - это пул строк, хранящихся в памяти кучи Java. Это руководство поможет вам с подробным подходом к Java String Pool с примерами.

Вы слышали о термине 'Пул строк в Java?' Что ж, если нет, то вы попали в нужное место. Пул строк в Java - это пул строк, который хранится в Куча памяти. Давайте копнем немного глубже и подробно разберемся с концепцией пула строк Java.

В этой статье будут рассмотрены следующие указатели:





Давайте начнем!

Прежде всего, давайте разберемся, как именно создается строковый объект!



Как создать строку?

Создать объект String в Java можно двумя способами:

  • Используя новый оператор. Например,
Строка s1 = новая строка ('Джоуи')
  • Использование строкового литерала или постоянного выражения. Например,
Строка s1 = 'Joey' (строковый литерал) или String s1 = 'Joe' + 'y' (строковое постоянное выражение)

Теперь, что это за пул строк, о котором я говорю, и как с этим связано создание строки в Java. Позвольте мне убрать беспорядок!

Что такое пул строк в Java?

Пул строк - это область хранения в куче Java.



Распределение строк, как и все размещение объекта , оказывается дорогостоящим делом как для времени, так и для памяти. JVM выполняет некоторые шаги при инициализации строковых литералов, чтобы повысить производительность и уменьшить накладные расходы на память. Чтобы уменьшить количество объектов String, созданных в JVM, класс String хранит пул строк.

Каждый раз, когда создается строковый литерал, JVM сначала проверяет пул строковых литералов. Если строка уже существует в пуле строк, возвращается ссылка на объединенный в пул экземпляр. Если строка не существует в пуле, новый объект String инициализируется и помещается в пул.

php как напечатать массив

Изучив концепцию теоретически, позвольте мне рассказать вам, как пул строк работает в Java, шаг за шагом с помощью простых экземпляров!

Как пул строк работает в Java?

Когда вы создаете новую строку вроде этого:

Строка s1 = «Рэйчел»

JVM автоматически проверяет, существует ли такое же значение в пуле строковых констант.

  • если да, он занимает уже существующее значение.
  • Если нет, он сам создает новую строку и добавляет ее в пул строк.

Если вы хотите остановить это поведение, создайте строку с помощью оператора new:

Строка s1 = новая строка («Рэйчел»)

Теперь, если вы хотите добавить эту строку в , Java предоставляет вам метод, называемый методом intern (), вы можете вызвать собственный метод intern () следующим образом:

S1.intern ()

Теперь я покажу вам реализацию и работу пула строк на примере.

Но перед этим небольшое напоминание!

Как вы знаете, если вы сравниваете 2 объекта с помощью оператора ==, он сравнивает адреса в памяти.

Поэтому мы будем сравнивать строки с помощью ==, чтобы быть полностью уверенными, что это один и тот же объект или нет.

Теперь перейдем к процессу реализации.

Пул строк в Java: блок-схема

Струнный пул - Edureka

Теперь давайте разберемся, что здесь происходит, шаг за шагом:

  • Класс загружается, когда вызывается.
  • JVM ищет все строковые литералы в программе
  • Сначала он находит переменную s1, которая относится к буквальному «Apple», и создается в памяти.
  • Ссылка на буквальное «Apple» затем помещается в память пула строковых констант.
  • Затем он находит другую переменную s2, которая относится к тому же строковому литералу «Mango».
  • Затем он находит другую переменную s3, которая ссылается на буквальное «яблоко».
  • Теперь, когда JVM уже нашла строковый литерал «Apple», обе переменные s1 и s3 будут ссылаться на один и тот же объект, то есть «Apple».

Программа на Java для пула строк

открытый класс StringPoolExperiment {public static void main (String [] args) {String s1 = 'Rachel' String s2 = 'Rachel' String s3 = new String ('Rachel') String s4 = new String ('Rachel'). intern ( ) System.out.println (s1 == s2) // true System.out.println (s1 == s3) // false System.out.println (s1 == s4) // true}}

Вывод:

Правда
Ложь
Правда

В приведенном выше примере вы можете ясно увидеть использование инициализации строки всеми тремя способами, т.е.

Строка s1 = 'Рэйчел' Строка s2 = 'Рэйчел' Строка s3 = новая Строка ('Рэйчел') Строка s4 = новая Строка ('Рэйчел'). Intern ()

Возможно, теперь следует прояснить внутреннюю работу программы.

На этом я подошел к концу своего блога. Я надеюсь, что изложенное здесь содержание помогло вам расширить вашу базу знаний. Мы продолжим погружаться в мир Java. Быть в курсе!

Проверьте от Edureka, надежной компании по онлайн-обучению с сетью из более чем 250 000 довольных учащихся по всему миру. Курс обучения и сертификации по Java J2EE и SOA от Edureka предназначен для студентов и профессионалов, которые хотят стать Java-разработчиками. Курс разработан, чтобы дать вам хорошее начало в программировании на Java и обучить вас как основным, так и продвинутым концепциям Java, а также различным фреймворкам Java, таким как Hibernate и весна .

Есть вопрос к нам? Пожалуйста, укажите это в разделе комментариев этого блога «Пул строк в Java», и мы свяжемся с вами в ближайшее время.