간단 지식/Java

03. Java의 메모리 영역 간단정리

납작한돌맹이 2020. 5. 10. 04:10
반응형

자바에서 메모리를 관장하는 것은 JVM(Java Virtual Machine)이다. JVM은 파일.exe가 실행이 되면 OS가 할당해준 메모리를 3개의 영역으로 구분해서 사용할 수 있게 해준다. method영역, heap영역, stack영역 이 3가지에 대해 알면 객체지향 언어인 자바를 이해하기 쉬울 것이다.


method 영역

한 프로그램을 이루는 코드에 있는 각 class별로

runtime constant pool,

field & method data,

method code,

constructor code

를 분류한다.

 

heap 영역

객체와 배열이 생성되는 영역

생성된 객체나 배열을 참조하는 변수 혹은 필드가 없으면 쓰레기가 된다.

-> JVM이 garbage collector를 실행시켜 제거

 

JVM stack 영역

thread마다 존재하는 영역으로, thread가 시작할 때 할당

main thread는 항상 존재하므로 stack도 항상 존재

heap영역에서 생성된 객체나 배열을 stack영역에서 참조

method 호출 시 stack frame을 push, 종료 시 pop

각 stack frame에는 로컬변수스택이 존재하고,

변수가 초기화되면 push, code block에서 벗어나면 pop

 

 

(이 글이 도움이 됐다면 광고 한번씩만 클릭 해주시면 감사드립니다, 더 좋은 정보글 작성하도록 노력하겠습니다 :) )

반응형