SMALL
Java에서 String 객체를 생성하는 방법은 두 가지가 있다.
1. literal인 큰 따옴표 ("")를 사용하는 방식
String literal로 생성한 객체는 내용이 같다면 같은 객체, 즉 동일한 메모리 주소를 가리킨다.


String literal로 생성하면 해당 String 값은 Heap 영역 내 String Constant Pool에 저장되어 재사용된다.
2. new 키워드를 사용하는 방식
new 키워드로 생성한 String 객체는 내용이 같더라도 서로 메모리 주소가 다른 개별적인 객체이다.


new 키워드로 생성한 String 객체는 같은 값이 String Constant Pool에 이미 존재하더라도, Heap 영역 내 별도의 객체를 가리키게 된다.
String Constant Pool

intern()
문자열 비교에는 보통 equals()을 사용한다. 그러나 속도나 메모리 향상을 위해 ==연산자의 사용이 필요할 때가 있는데, 그럴 때 사용하는 것이 intern() 이다.
intern() 함수는 String Constant Pool에 리터럴 문자열이 이미 존재하는지 체크하고 존재하면 해당 문자열을 반환, 존재하지 않으면 String Constant Pool에 해당 문자열을 넣어준다.

'JAVA' 카테고리의 다른 글
| [JAVA] 접근 제어자 (0) | 2024.10.22 |
|---|---|
| [JAVA] 패키지 (2) | 2024.10.22 |
| [JAVA] 메소드 오버로딩 (0) | 2024.10.20 |
| [JAVA] 배열 (0) | 2024.10.20 |
| [JAVA] JVM 메모리 구조 (1) | 2024.10.15 |