본문 바로가기

Study

자바 코드를 JVM으로 실행하는 과정

자바 코드를 JVM으로 실행하는 과정

 

 

JVM은 자바 가상 머신(Java Virtual Machine) 으로, 자바 프로그램이 특정 기기나 운영체제에 종속되지 않고 어떤 환경에서도 실행될 수 있는 환경을 제공하는 프로그램이다.

JVM 이 등장하기 전, 기존 언어들은 특정 운영체제에 종속되어 그에 맞는 '실행가능한 프로그램' 을 만들어야 했으나, JVM 이 등장하고 하드웨어 의존성이 없는 '바이트코드'(특정 하드웨어가 아닌 가상 머신에서 실행되는 프로그램을 위한 이진코드) 를 만들고 이를 각각 운영체제에 맞는 기계어로 번역하는 과정을 추가해주면서 속도를 포기하고 (언어가 운영체제에 종속되지 않는)편리함을 얻었다.

 

자바 파일을 컴파일하고 실행하는 과정은 다음과 같다. 

자바 파일 실행 과정

1.  .java 파일을 컴파일하여 바이트코드로 이루어진 .class 파일을 생성한다.

2. .class 파일을 JVM의 클래스 로더에 전달하면, 클래스 로더는 동적 로딩을 통해 필요한 클래스들을 로딩, 링킹 하여 JVM 의 런타임 데이터 영역(메모리) 올린다.

3. JVM 메모리에 올라간 클래스들은 Execute Engine 에 의해 두 가지 방법으로 실행된다.

- 인터프리터 방식 : 바이트 코드 명령어를 하나씩 읽고 수행함

- JIT(Just In Time) 컴파일러 방식 : 바이트 코드 전체를 바이너리 코드로 변경하고 직접 실행하는 방식

 

 

JVM 구성 요소 : Interpreter, JIT Compiler, GC