1편 : https://developer-youn.tistory.com/124
jvm 조금씩 알아가기 1편 - jvm이란
2편 : https://developer-youn.tistory.com/125 jvm 조금씩 알아가기 2편 - 클래스 로더(class loader) 1편(https://developer-youn.tistory.com/124)을 보고 오시는걸 추천드립니다. 0. 목표 java를 개발하다 보면 종종 class loader
developer-youn.tistory.com
2편 : https://developer-youn.tistory.com/125
jvm 조금씩 알아가기 2편 - 클래스 로더(class loader)
1편(https://developer-youn.tistory.com/124)을 보고 오시는걸 추천드립니다. 0. 목표 java를 개발하다 보면 종종 class loader라는 단어를 콘솔에 찍힌 에러 등을 통해 본 적이 있을 수도 있다.(실은 대부분 봤을
developer-youn.tistory.com
3편 : https://developer-youn.tistory.com/126
jvm 조금씩 알아가기 3편 - 데이터 영역(Runtime Data Areas)
1편과 2편을 보고 읽으시는 것을 추천드립니다 1편 https://developer-youn.tistory.com/124 2편 https://developer-youn.tistory.com/125 jvm 조금씩 알아가기 1편 - jvm이란 0. 목표 jvm이 뭔지, 종류가 뭔지 알아간다. 1. jav
developer-youn.tistory.com
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 |