자바의 상수 풀
- 상수 풀은 JVM 에 존재하는 특별한 영역
- 리터럴 + 상수 값들을 중복 없이 저장할 수 있는 메모리의 한 공간입니다.
- 문자열, 숫자, 클래스 등 다양한 상수 정보가 저장됩니다.
상수 풀을 왜 사용하는가?
- 메모리상의 효율
- 상수풀을 사용하는 경우 중복된 데이터 없이 하나의 값만 저장합니다.
- 메모리의 사용량을 DOWN
- 성능 최적화
- 상수 풀에 저장된 값을 재사용함으로써 객체 생성 비용을 줄일 수 있습니다.
문자열과 상수풀
- 자바에서의
String
리터럴은 상수 풀에 저장됩니다!
- 같은 문자열 리터럴의 경우 상수 풀에서 동일한 참조를 가리킵니다.
- 물론 new String 연산자를 사용하는 경우에는 값이 동일해도 항상 다른 주소값을 가지겠죠.
상수 풀의 위치
Java 버전이나 JVM 구현에 따라 상수 풀의 위치나 관리법이 바뀔 수 있습니다.
하지만, 내부적인 변경은 개발자에게 투명하게 처리되기에, 별도로 고민할 필요는 없습니다.
Uploaded by N2T
'자바 > 스프링입문객체지향' 카테고리의 다른 글
__**Java 8 이전과 이후의 메모리 영역 변화**__ (0) | 2023.08.19 |
---|---|
전역변수와 지역변수에 대한 정정 (0) | 2023.08.19 |
필드 vs 속성 | 함수 vs 메서드 (0) | 2023.08.18 |
멀티 스레드 / 멀티 프로세스의 이해 (0) | 2023.08.18 |
변수와 메모리: 전역 변수 쓰지 말라니까요! (0) | 2023.08.17 |