Java는 JVM(Java Virtual Machine)을 통해 컴파일되고 실행되게 되는데 그 JVM의 구조중 Runtime Data Area가 있다.
Method Area | Heap Area | Stack Area | PC Register |
Native Method Stack |
Runtime Data Area는 위와같은 5개의 영역이 있는데 그중 Stack과 Heap에 대해 알아보았다.
1. Stack
Stack영역에는 Method가 호출될 때 그 Method에서 사용될 지역번수(Local Veriable)을 준비하고 또한 Method를 호출할때 전달하는 매개변수(Parameter)등이 저장되는 영역이다. Stack영역도 세세하게 나눌수는 있지만 그에 관한 내용은 한국데이터산업진흥원(www.kdata.or.kr/info/info_04_view.html?field=&keyword=&type=techreport&page=19&dbnum=183668&mode=detail&type=techreport)에서 확인할 수 있다.
Reference Type의 변수일 경우 변수가 참조하는 주소가 Stack에 저장된다.
2. Heap
Heap영역에는 Reference Type의 변수의 실질적인 메모리가 저장된다. 여기에 저장되는 변수들은 참조를 할 수 없거나 참조가 끊긴 경우 메모리를 관리하기 위해 Garbage Collector에 의해 제거된다.
간단하게 보면 위와 같은 식으로 정리할 수 있다. 추가적인 내용이나 수정할 부분이 생기면 수정하도록 하고 정리는 여기서 끝내도록 하겠다.
'Language > Java' 카테고리의 다른 글
[JAVA] Class에 대해 (0) | 2021.02.03 |
---|---|
[JAVA] Method호출 방식(Call by Reference, Name, Value) (0) | 2021.02.02 |
[JAVA]반, 학생 수 를 입력받는 성적 프로그램 (0) | 2021.02.01 |
[JAVA] 별찍기 (0) | 2021.01.30 |
[JAVA]연산자(Operator) (0) | 2021.01.28 |