[스터디할래 01] JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가

이 글은 ‘백기선’ 개발자님과 함께하는 온라인 자바 스터디에 참여하여 준비/학습한 내용을 정리하는 글입니다.📚

나는 공식문서를 좋아해서, 오라클 Java SE 8 공식문서를 주로 참고하여 정리해보았다.

JVM이란 무엇인가

컴파일 하는 방법

실행하는 방법

바이트코드란 무엇인가

JIT 컴파일러란 무엇이며 어떻게 동작하는지

전통적인 입장에서 컴퓨터 프로그램을 만드는 방법은 두 가지가 있는데, 인터프리트 방식정적 컴파일 방식으로 나눌 수 있다. 이 중 인터프리트 방식은 실행 중 프로그래밍 언어를 읽어가면서 해당 기능에 대응하는 기계어 코드를 실행하며, 반면 정적 컴파일은 실행하기 전에 프로그램 코드를 기계어로 번역한다. JIT 컴파일러는 두 가지의 방식을 혼합한 방식으로 생각할 수 있는데, 실행 시점에서 인터프리트 방식으로 기계어 코드를 생성하면서 그 코드를 캐싱하여, 같은 함수가 여러 번 불릴 때 매번 기계어 코드를 생성하는 것을 방지한다. (출처 : https://ko.wikipedia.org/wiki/JIT_%EC%BB%B4%ED%8C%8C%EC%9D%BC)

JVM 구성 요소

ClassLoader

Runtime Data Area

Execution Engine

JIT Compiler

GC

JDK와 JRE의 차이

JRE

JDK

*- java9부터는 JRE를 따로 배포하지 않는다고 한다. *