JVM은 용도에 따라 여러 영역으로 나누어 메모리를 관리한다.
과연 어떤식으로 관리하는지 알아보자.
메서드 영역 (Method Area = Class Area = Static Area)
· 프로그램 실행 중 어떤 클래스가 사용되면, JVM은 해당 클래스의 클래스 파일(*.class)을 읽어서 분석하여 클래스에 대한 정보를 이곳에 저장함. 이 때, 그 클래스의 클래스 변수도 이 영역에 함께 저장.
호출 스택 (Call Stack 또는 Execution Stack)
· 메서드의 작업에 필요한 메모리 공간을 제공.
· 메서드가 호출되면, 메서드 수행에 필요한 메모리 공간을 할당, 메서드가 종료되면 사용하던 메모리를 반환하고 스택에서 제거.
· 메서드가 작업을 수행하는 동안 지역 변수(매개 변수 포함)들과 중간 결과 등을 저장함.
· 호출 스택 맨 위에 있는 메서드가 현재 실행 중인 메서드.
힙 (Heap)
· 인스턴스가 생성되는 공간.
· new 연산자에 의해서 생성되는 배열과 객체는 모두 여기에 생성.
[참고] 자바의 정석
'프로그래밍 > Java' 카테고리의 다른 글
접근 제어자 (Access Modifier) (0) | 2017.08.19 |
---|---|
오버로딩과 오버라이딩 (0) | 2017.08.14 |
선언 위치에 따른 변수의 종류 (0) | 2017.08.12 |
클래스와 객체와 인스턴스 (0) | 2017.08.11 |
변수 타입에 따른 기본값 (0) | 2017.08.05 |
WRITTEN BY
- 김치치즈스마일
세계정복!
,