자바 컴파일 과정


자바 컴파일 순서

Java에는 운영 체제 독립적 속성이 있습니다.

이는 JVM(Java Virtual Machine)을 통해 가능합니다.

운영 체제와 독립적으로 Java 컴파일 프로세스에서 수행할 수 있는 JVM의 기능을 알아보겠습니다.


  1. 개발자는 Java 소스 코드(.java)를 작성합니다.

  2. Java 컴파일러는 Java 소스 코드 파일(.java)을 읽고 이를 바이트 코드 코드(.class)로 컴파일합니다.

    바이트코드(.class) 파일은 아직 컴퓨터에서 읽을 수 없는 JVM(Java Virtual Machine)에서 읽을 수 있는 코드입니다.

    (자바 -> 클래스)
  3. 컴파일된 바이트코드(.class)를 JVM의 클래스 로더로 반환합니다.

  4. 클래스 로더는 동적 로딩을 통해 필요한 클래스를 로드하고 링크하여 런타임 데이터 영역(런타임 데이터 영역의 메서드 영역), 즉 JVM의 메모리에 업로드합니다.

  5. 실행 엔진은 JVM 메모리에 업로드된 바이트코드를 하나씩 가져와서 실행한다.

    이 시점에서 실행 엔진은 두 가지 방식으로 변경됩니다.

    2. JIT 컴파일러 : 통역사의 단점을 보완하는 방식으로 도입 모든 바이트 코드를 컴파일하고 바이너리 코드로 변경그 후에는 메서드가 더 이상 해석되지 않고 이진 코드로 직접 실행됩니다.

    개별적으로 해석하고 실행하는 대신, 모든 컴파일된 바이트 코드로 이진 코드 실행.이 때문에 전체 실행 속도가 해석 방식보다 빠릅니다.

  6. 1. 통역사 : 바이트코드 명령어 읽고 해석하다그리고 그것을 실행합니다.

    각 실행은 빠르지만 전체 실행 속도는 느립니다.