[JAVA] 컴파일 과정

in·2023년 8월 30일
0

JAVA

목록 보기
1/9

📌 Java 컴파일 과정

  1. 개발자가 자바 소스코드(.java) 작성

  2. 자바 컴파일러가 자바 소스코드(.java) 파일을 읽어 바이트코드(.class) 코드로 컴파일
    바이트코드(.class) 파일은 아직 컴퓨터가 읽을 수 없고 JVM(자바 가상 머신)이 읽을 수 있는 코드

✔️ 바이트 코드 : 특정 하드웨어가 아닌 가상 머신에서 돌아가는 실행 프로그램을 위한 이진 표현법

  1. 컴파일된 바이트코드(.class)를 JVM의 클래스 로더에게 전달

  2. 클래스 로더는 동적 로딩을 통해 필요한 클래스들을 로딩 및 링크하여 런타임 더이터 영역, 즉 JVM의 메모리에 올림

  3. 실행엔진(Execution Engine)은 JVM 메모리에 올라온 바이트 코드들을 명령어 단위로 하나씩 가져와서 실행(두가지 방식)
    • 인터프리터 : 바이트 코드 명령어를 하나씩 읽어서 해석하고 실행
      -> 하나씩의 실행은 빠르지만 전체적인 실행 속도는 느림
    • JIT컴파일러 : 바이트 코드 전체를 컴파일하여 바이너리 코드로 변경하고 이후에는 해당 메소드를 더이상 인터프리팅 하지 않고, 바이너리 코드로 직접 실행하는 방식
      -> 인터프리터의 단점을 보완하기 위해 도입된 방식으로 전체적인 실행 속도는 인터프리팅 방식보다 빠름

컴파일 시 바이트 코드로 변환하는 이유

바이트 코드 변환을 통해서 CPU에 독립적이고 OS에 독립적이게 됨
-> JVM만 있으면 어디서든 실행 가능함

[참고자료]

🔗링크1
🔗링크2

0개의 댓글