코딩기록
JVM 정리 본문
JVM 이란?
자바를 실행하기 위한 가상 기계
OS에 종속적이지 않다
.java 파일 컴파일 과정
.java -> Java compiler(javac) -> .class(바이트 코드: JVM이 이해할 수 있는 언어) -> JIT Compiler*, 동적 번역* -> 바이너리 코드(기계어, 컴퓨터가 인식할 수 있는 0과 1로 구성된 이진코드)
* 인터프리터 방식으로 실행하다가 적절한 시점에 바이트코드 전체를 컴파일하여 기계어로 변경하고, 이후에는 더 이상 인터프리팅하지 않고 기계어로 직접 실행
JVM 구조
1. 클래스 로더(Class Loader)
JVM 내로 클래스 파일을 로드하고 링크를 통해 배치하는 작업을 수행
2. 실행 엔진(Excution Engine)
- 인터프리터 “ 자바 바이트 코드를 명령어 단위로 읽어서 실행
- JIT Compiler : 프로그램을 실제 실행하는 시점에 기계어로 번역하는 컴파일러
- 가비지 콜렉터 : 더 이상 사용되지 않는 인스턴스를 찾아 메모리에서 삭제
3. Runtime Data Area : 프로그램을 수행하기 위해 OS에서 할당받은 메모리 공간
참고
JDK(Java를 사용하기 위해 필요한 모든 기능 포함) ⊃ JRE(JVM + 자바 클래스 라이브러리 등으로 구성, 컴파일된 Java 프로그램을 실행하는데 필요한 패키지) ⊃ JVM
출처
'백엔드 > JAVA' 카테고리의 다른 글
JSP의 개념과 특징 (0) | 2024.09.16 |
---|---|
자바 메모리 영역 Stack, Heap, Static (0) | 2024.02.13 |
LocalDateTime format, pattern으로 변환하여 표현하기 (0) | 2024.01.08 |