Java의 고유한 문자열 초기화 이해
Java의 객체 지향 특성에도 불구하고 큰따옴표를 사용한 문자열 초기화는 의문을 제기합니다. 문자열이 클래스 구조에 속한다면 이것이 어떻게 가능합니까?
Java의 특수 문자열
Java의 설계자는 성능을 최적화하기 위해 객체 지향 프레임워크 내에서 원시 유형을 유지하려고 했습니다. 기본 요소는 호출 스택에 저장되므로 메모리 사용량과 조작 비용이 줄어듭니다. 한편 객체는 프로그램 힙을 차지하므로 복잡한 메모리 관리와 더 큰 저장 공간이 필요합니다.
이러한 격차를 해소하기 위해 Java의 문자열은 프리미티브와 클래스의 특성을 모두 보유하도록 설계되었습니다.
문자열 리터럴 및 객체
다음을 고려하세요. 예:
String s1 = "Hello"; // String literal String s2 = "Hello"; // String literal String s3 = s1; // Same reference String s4 = new String("Hello"); // String object String s5 = new String("Hello"); // String object
아래 링크된 이미지는 이를 보여줍니다.
[문자열 풀 및 힙 저장소 이미지]
문자열 리터럴(s1 및 s2)은 공통 풀, 메모리 보존. 그러나 문자열 객체(s4 및 s5)는 힙에 상주하며 공유되지 않습니다.
위 내용은 객체임에도 불구하고 Java에서 큰따옴표를 사용하여 문자열을 어떻게 초기화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!