Programming Language/Java

[Java] Java Code의 실행 과정 (JVM에 전달되기 까지)

gf0308 2022. 3. 5. 19:50

(참조: https://steady-snail.tistory.com/67)

 

 

자바 코드(자바 소스)를 실행하면 일련의 과정을 거쳐 JVM에 전달이 되고 실행이 되게 된다.

JVM에 전달되어 실행이 되기까지 자바 코드의 실행 과정은 다음과 같다.

 

<자바 코드 실행 과정>

1) '자바 소스(.java 파일)'를 실행한다.

2) '자바 컴파일러(javac.exe)'가 자바 소스를 컴파일하여 '자바 바이트코드 파일(.class 파일)'을 생성한다.

3) 자바 바이트코드 파일을 'JVM의 클래스 로더(Class Loader)'로 전달한다.

4) 클래스 로더(Class Loader)는 '동적 로딩(Dynamic Loading)'으로 필요한 클래스(바이트코드)를 로딩 및 링크하여 '런타임 데이터 영역(Runtime Data Area : JVM의 메모리)'으로 올린다.

5) '실행 엔진(Execution Engine)'은 (Runtime Data Area에 올라와 있는) 바이트코드 내용들을 '명령어 단위로 하나씩' 가져와 실행한다.

 

 

정리

자바 코드가 실행되면

-> "Java Compiler가 자바소스(.java)를 컴파일해 Byte Code 파일(.class) 생성"

-> "Byte Code 파일을 JVM Class Loader로 전달"

-> "Class Loader는 Dynamic Loading으로 필요한 바이트 코드를 로딩 및 링크하여 Runtime Data Area로 적재"

-> "Execution Engine이 Runtime Data Area에 있는 바이트 코드 내용을 명령어 단위로 하나씩 가져와서 실행"

되게 된다.