Java 프로그램 실행 구조
📌 메인 메모리(Main Memory)
: 프로그램의 실행에 필요한 메모리 공간.
= 램.(RAM)
📌 운영체제
: 메모리를 효율적으로 사용하기 위해 메모리 관리함.
예. 윈도우, 리눅스 등
→ 운영체제가 응용 프로그램에 메모리를 할당해줌.
📌 자바의 특징 : 자바의 가상 머신은 운영체제 위에서 동작한다.
: 운영체제가 Java Virtual Machine(자바 가상 머신) 을 실행시키고, Java Virtual Machine이 Java 프로그램을 실행시킴.
따라서, Java Virtual Machine(자바 가상 머신) 은 운영체제가 할당하는 메모리 공간을 기반으로 스스로를 실행 시킴.
자바의 메모리 모델
📌 자바의 메모리 모델
: 자바 가상 머신의 메모리 관리 방식.
📌 자바의 메모리 모델의 구조
① 메소드 영역(Method Area) : 메소드의 바이트 코드, static 변수
② 스택 영역(Stack Area) : 지역 변수, 매개 변수
③ 힙 영역(Heap Area) : 인스턴스
메소드 영역(Method Area)
📌 메소드 영역(Method Area)
: 특정 클래스의 정보가 메모리 공간에 올려질 때 채워지는 영역.
메소드의 바이트 코드, static 변수
💡 바이트 코드(Bytecode)
: 자바 가상 머신이 실행할 수 있는 바이너리 코드.
.class 파일에 저장됨.
메모리 공간에 존재해야 실행 가능.
스택 영역(Stack Area)
📌 스택 영역(Stack Area)
: 중괄호 내에 할당된 후 중괄호를 벗어나면 소멸되는 데이터들을 저장하기 위한 영역.
지역 변수, 매개 변수(→ 중괄호 내에서만 유효한 변수들.)
힙 영역(Heap Area)
📌 힙 영역(Heap Area)
: 인스턴스
📌 참조 변수는 스택 영역에 할당되고, 인스턴스는 힙 영역에 할당됨.
스택 영역에 있는 참조 변수는 힙 영역에 있는 인스턴스를 참조함.
📌 힙 영역에 있는 인스턴스는 가상 머신에 의해 자동으로 소멸됨.
📌 어떤 참조 변수도 참조하지 않은 상태의 인스턴스 = 소멸 대상
📌 가비지 컬렉션(Garbage Collection)
: 인스턴스 소멸 방식.
소멸 대상이 되었다고 바로 소멸되진 않음.
별도의 알고리즘을 기반으로 가비지 컬렉션(Garbage Collection)이 수행됨.
'Java > Java' 카테고리의 다른 글
[Java] 래퍼 클래스(Wrapper 클래스) (0) | 2022.10.17 |
---|---|
[Java] Object 클래스 (0) | 2022.10.17 |
[Java] 인터페이스(interface) (1) | 2022.10.15 |
[Java] 템플릿 메서드 (0) | 2022.10.15 |
[Java] 추상 클래스(Abstract Class) (0) | 2022.10.15 |
댓글