저우즈밍 님의 "JVM 밑바닥까지 파헤치기" 책을 정리한 포스팅 입니다
- JVM 실행 엔진은 해석 실행과 컴파일 실행 두가지 방법으로 코드를 실행함 (선택 가능)
1. 해석 실행
인터프리터 해석 과정
- 어휘 분석
- 구문 분석
- 추상 구문 트리 생성
- 인터프리터
- 문장 실행
컴파일 해석 과정
- 어휘 분석
- 구문 분석
- 추상 구문 트리 생성
- 중간 코드 생성
- 최적화
- 목적 코드 생성
2. 명령어 집합
스택 기반
iconst_1
iconst_1
iadd
istore_0
- 바이트코드 명령어 스트림
- 피연산자 스택을 이용해 동작
장점
- 이식성: 하드웨어 의존 X
- 간결: 바이트 명령어 하나당 한 동작 수행 (매개변수 X)
단점
- 속도 느림: 메모리를 빈번하게 접근함
레지스터 기반
mov eax, 1
add eax, 1
- 매개 변수 2개를 받는 명령어
'Java' 카테고리의 다른 글
[JVM 밑바닥까지 파헤치기] 10-1. 프런트엔드 컴파일과 최적화: 프런트엔드 컴파일 (0) | 2024.12.24 |
---|---|
[JVM 밑바닥까지 파헤치기] 9. 클래스 로딩과 실행 서브시스템, 사례와 실전 (0) | 2024.12.24 |
[JVM 밑바닥까지 파헤치기] 8-1. 바이트코드 실행 엔진: 런타임 (0) | 2024.12.24 |
[JVM 밑바닥까지 파헤치기] 7-3. 클래스 로딩 매커니즘: 자바 모듈 시스템 (2) | 2024.12.23 |
[JVM 밑바닥까지 파헤치기] 7-2. 클래스 로딩 매커니즘: 클래스 로더 (0) | 2024.12.23 |