-
jvm 메모리
- jvm에서 메모리 영역인 런타임 데이터 영역의 구조를 그림으로 그리면 다음과 같다.
크게 3부분으로 나눠진다.
1. 메소드 영역(클래스 영역)
- 필드나 메서드의 메타데이터 저장
- static 변수, 메소드 저장
- 바이트 코드 저장
- 상수 풀(Constant Pool)
2. 스택 영역
- Last In First Out(LIFO)
- 메서드 호출 시마다 각각의 프레임 생성
- 메서드 안에서 사용되어지는 값들을 저장
- 호출된 메서드의 매개변수, 지역변수, 리턴 값 및 연산 시 일어나는 값들을 임시로 저장 메서드 수행이 끝나면 프레임별로 삭제
3. 힙 영역
- new 연산자로 생성된 객체와 배열을 저장하는 공간
- 클래스 영역에 로드된 클래스만 생성가능
- GC를 통해 메모리 반환