Что такое пул строк 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