1. 메모리
- 프로그램 실행하기 위한 데이터 및 명령어 저장 공간.
2. JVM이란?
- Java Virtual Machine
- java프로그램은 JVM으로 실행 가능하다 → 자바는 JVM 위에서 실행 되기 때문에 OS에 독립적이다.
- 자바 소스 코드 컴파일 후 생성된 파일이 해석(interpret)과 Link없이 바로 JVM에 적재 되고, OS로부터 메모리를 할당받아 GC(Garbage Collection)를 통해 스스로 메모리 관리를 한다는 특징이 있습니다.
- 메모리 할당 등 메모리 관리 기능
- bytecode를 interpreter 형태로 OS에 맞추어 interpret, execute한다
- JAVA와 OS 사이의 중개자 역할.
3. JVM 구조 그림
- JVM은 크게 가비지컬렉터, Execution Engine, Class Loader, Runtime Data Area로 나뉨.
- Runtime Data Area와 Class Loader에 대해서는 저번 포스팅에서 알아 봤었음.
Execution Engine
- Byte Code를 실행 가능하게 해석해주는 기능.
Class Loader
- 클래스 파일을 메모리에 적재하는 기능.
Runtime Data Area
- 프로그램을 수행하기 위해 OS에서 할당 받은 메모리 공간
- 이 공간은 크게 힙, 스택, 메소드(=클래스) area로 나뉨.
Garbage Collector
- 메모리 할당, 관리
- 코드에서 a라는 객체가 만들어져 메모리의 한 부분을 점유 하게 되고, 특정 메소드 호출 후 수행이 완료되어 해당 객체가 더이상 필요 없는 객체, 쓰레기가 된다. 이 쓰레기 객체를 효과적으로 처리하는 작업을 GC라고 함.
4. JVM 상세 전체 구조도
5. 출처
Uploaded by Notion2Tistory v1.1.0