Java 문자열 풀이란 무엇입니까?
이름에서 알 수 있듯이 Java의 문자열 풀은 Java 힙 메모리에 저장된 문자열 풀입니다. 우리는 String이 Java의 특수 클래스라는 것을 알고 있으며 큰따옴표로 값을 제공할 뿐만 아니라 new 연산자를 사용하여 String 개체를 만들 수 있습니다.
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 문자열 클래스
문자열 풀에서 얼마나 많은 문자열이 생성되고 있습니까?
때때로 Java 인터뷰에서 String pool에 대한 질문을 받게 됩니다. 예를 들어 아래 문에서 생성되는 문자열의 수입니다.
String str = new String("Cat");
위의 문장에서 1 또는 2 문자열이 생성됩니다. 풀에 문자열 리터럴 "Cat\이 이미 있는 경우 풀에는 문자열 "str\ 하나만 생성됩니다. 풀에 문자열 리터럴 "Cat\이 없으면 풀에서 먼저 생성된 다음 힙 공간에서 생성되므로 총 2개의 문자열 개체가 생성됩니다. 읽기: Java 문자열 인터뷰 질문