- jvm에서 메모리 영역인 런타임 데이터 영역의 구조를 그림으로 그리면 다음과 같다.
크게 3부분으로 나눠진다.
1. 메소드 영역(클래스 영역)
- 필드나 메서드의 메타데이터 저장
- static 변수, 메소드 저장
- 바이트 코드 저장
- 상수 풀(Constant Pool)
2. 스택 영역
- Last In First Out(LIFO)
- 메서드 호출 시마다 각각의 프레임 생성
- 메서드 안에서 사용되어지는 값들을 저장
- 호출된 메서드의 매개변수, 지역변수, 리턴 값 및 연산 시 일어나는 값들을 임시로 저장
메서드 수행이 끝나면 프레임별로 삭제
3. 힙 영역
- new 연산자로 생성된 객체와 배열을 저장하는 공간
- 클래스 영역에 로드된 클래스만 생성가능
- GC를 통해 메모리 반환
티스토리 뷰
jvm 메모리
출처 : http://wonwoo.ml/index.php/post/category/java/page/13
'Java' 카테고리의 다른 글
static과 final의 사용 (0) | 2017.06.28 |
---|---|
자바7의 몇 가지 특징 (0) | 2017.03.30 |
JAVA8에 대해 알아보자(2) (0) | 2017.03.29 |
JAVA8에 대해 알아보자(1) (0) | 2017.03.29 |
jvm 가비지 컬렉션 (0) | 2017.03.29 |