Поиск по сайту:

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


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

Пул строк в 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

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

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

String str = new String("Cat");

В приведенном выше выражении будет создана либо 1, либо 2 строки. Если в пуле уже есть строковый литерал \Cat, то в пуле будет создана только одна строка \str. Если в пуле нет строкового литерала \Cat, то он будет сначала создан в пуле, а затем в пространстве кучи, поэтому всего будет создано 2 строковых объекта. Читайте: Java String Interview Questions