Java 문자열 풀: 스택 할당과 힙 저장소
다음 코드 조각을 고려하세요.
String first = "abc"; String second = new String("abc");
new 키워드가 포함된 new String 객체는 힙에 고유한 String 객체를 생성합니다. 다른 프리미티브와 달리 String 객체는 불변입니다. 즉, 초기화 후에는 수정할 수 없습니다.
그러나 Java는 일반적으로 사용되는 제한된 수의 문자열을 저장하는 힙에 문자열 풀을 유지합니다. 리터럴 문자열(큰따옴표로 묶음)이 정의되면 컴파일러는 문자열 풀에서 일치하는 기존 문자열을 확인합니다. 발견되면 리터럴 문자열은 풀의 기존 문자열을 참조하여 메모리 효율성을 보장합니다.
이 예에서는 "abc"가 리터럴 문자열이므로 문자열 풀에 배치됩니다.
이제 new String("abc")으로 생성된 새 String 객체를 고려해 보겠습니다.
따라서 우리의 코드 결과는 문자열 풀에 있는 하나의 문자열("abc"") 및 힙에 있는 하나의 고유한 문자열 (new String("abc")로 생성된 것).
위 내용은 Java 문자열 풀: 힙 또는 스택 - 문자열 개체는 어디에 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!