1편 : https://developer-youn.tistory.com/124
2편 : https://developer-youn.tistory.com/125
3편 : https://developer-youn.tistory.com/126
0. 들어가며
이제 실행 엔진만 설명하면 기본적인 jvm이 java 코드를 실행하는 방식에 대해서 거의 다 설명을 했다고 보면 된다.
1. 실행 엔진이란
말 그대로 무언가를 실행해 주는 엔진이다. 앞에 있는 글에서 javac를 이용해. java파일을. class파일로 변환한다고 언급한 적이 있다.
그리고 클래스 로더는 해당 파일을 읽어들인다고 말했다.
실행 엔진은 이렇게 읽어들인 파일을 실행하는 역할을 한다.
2. 실행 엔진의 방식
실행 엔진의 방식으로는 2가지가 존재한다.
- Interpreter
- JIT (Just In Time)
2-1. Interpreter
Interpreter방식은 바이트 코드를 하나하나씩 읽어 가면서 해석하고 실행한다. 이 과정에서 하나하나씩 읽기 때문에 해석은 빠르지만 실행이 느린 것이 단점이다.
2-2. JIT(Just In Time)
정확히는 JIT Compiler로 보는 게 맞다.
JIT Compiling은 바이트 코드를 다시 네이티브 코드(기계어)로 번역해서 사용한다.
Interpreting방식에 비교하면 모두를 한 번에 기계어로 번역한 후 진행한다는 것이 큰 차이이다.
jvm에서는 Interpreting 방식을 사용하다 특정 기준을 만족하면 바이트 코드 전체 컴파일해서 네이티브 코드로 바꾸고 더 이상 Interpreting을 하지 않는다.
3. 마무리
여기서 더 타고 들어가면 너무 깊어져서 여기서 마무리 한 후 깊은 내용에 대해 하나하나 다루는 게 맞을 것 같다.
contact: dev.berno@gmail.com
'JAVA > java - core' 카테고리의 다른 글
throw에 대한 간단한 설명과 개인적인 생각 (0) | 2023.02.26 |
---|---|
jvm 조금씩 알아가기 3편 - 데이터 영역(Runtime Data Areas) (0) | 2023.02.19 |
jvm 조금씩 알아가기 2편 - 클래스 로더(class loader) (0) | 2023.02.18 |
jvm 조금씩 알아가기 1편 - jvm이란 (0) | 2023.02.17 |