자바/스프링입문객체지향
__**Java 8 이전과 이후의 메모리 영역 변화**__
OverTheHorizon3410
2023. 8. 19. 01:38
개요
- Java 8 기점으로 격변함
- Permanent Generation 영역이 사라지게 되고
- MetaSpace 영역이 등장하였다.
Java8 이전의 메모리 구조
Permanent Generation
- 정의
- 클래스의 메타데이터와 상수 풀을 저장하는 영역
- 특징
힙 영역의 일부였다고 합니다. ㄷ. ㄷ
- 힙 영역을 나눠 사용하는 것이다 보니, 크기가 제한적이여서
- 실제로 Java 8 이전에는 OOM 이 발생하는 상황이 더 잦았다고 합니다
Java8 이후의 메모리 구조
MetaSpace == MethodArea
- 정의
- Permanent Generation 영역을 대체하기 위해 등장했습니다.
- 특징
- Native Memory 에 할당됨
- 제한된 크기가 없음
- 메모리 누수 우려가 낮아졌음
STATIC
과 메모리
- static 변수
- 클래스 로딩 시점에 메모리에 할당됩니다.
- Method Area == MetaSpace 에 저장됨.
- 클래스의 모든 인스턴스에서 공유됩니다
- 객체
- new 연산자를 사용
- 힙 영역에 저장됨.
Uploaded by N2T