Рубрики
Без рубрики

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

Пул строк на Java. Пул строк Java. Пул строковых констант в java с примером программы. концепция пула строк и управление памятью в куче и пуле.

Автор оригинала: Pankaj Kumar.

Как следует из названия, Пул строк в java – это пул строк, хранящихся в Кучной памяти Java . Мы знаем, что String-это специальный класс в java, и мы можем создавать строковые объекты с помощью нового оператора, а также предоставлять значения в двойных кавычках.

Пул строк в Java

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

Пул строк возможен только потому, что Строка неизменна в Java и ее реализация концепции Интернирования строк|/. Пул строк также является примером Шаблона проектирования веса мухи .

Stringpool помогает сэкономить много места для среды выполнения Java, хотя для создания строки требуется больше времени.

Когда мы используем двойные кавычки для создания строки, она сначала ищет строку с тем же значением в пуле строк, если она найдена, она просто возвращает ссылку, в противном случае она создает новую строку в пуле, а затем возвращает ссылку.

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

Вот программа java для изображения пула строк:

package com.journaldev.util;

public class StringPool {

    /**
     * Java String Pool example
     * @param args
     */
    public static void main(String[] args) {
        String s1 = "Cat";
        String s2 = "Cat";
        String s3 = new String("Cat");
        
        System.out.println("s1 == s2 :"+(s1==s2));
        System.out.println("s1 == s3 :"+(s1==s3));
    }

}

Результатом работы вышеуказанной программы является:

s1 == s2 :true
s1 == s3 :false

Сколько строк создается в пуле строк?

Иногда в интервью java вам зададут вопрос о пуле строк. Например, сколько строк создается в приведенной ниже инструкции;

String str = new String("Cat");

В приведенном выше операторе будет создана строка 1 или 2. Если в пуле уже есть строковый литерал “Cat”, то в пуле будет создана только одна строка “str”. Если в пуле нет строкового литерала “Cat”, то он будет сначала создан в пуле, а затем в пространстве кучи, поэтому в общей сложности будет создано 2 строковых объекта.

Прочитайте : Вопросы для интервью с Java-строками