반응형
자바에서 메모리를 관장하는 것은 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
(이 글이 도움이 됐다면 광고 한번씩만 클릭 해주시면 감사드립니다, 더 좋은 정보글 작성하도록 노력하겠습니다 :) )
반응형
'간단 지식 > Java' 카테고리의 다른 글
알아두면 편한 메소드 (0) | 2020.05.26 |
---|---|
05. main 메소드의 매개값 - String[] args (0) | 2020.05.26 |
04. 참조타입변수 - String, 배열, 열거 (0) | 2020.05.10 |
02. 기본 타입 변수와 참조 타입 변수 (0) | 2020.05.08 |
01. 자동타입변환과 강제타입변환 (0) | 2020.05.01 |