프로그래밍/JAVA

[JAVA] 컴파일과 실행하는 과정

bonong 2022. 9. 18. 20:21
반응형

컴파일

  • 컴퓨터에서 컴파일은 기계가 해석할 수 있는 언어로 바꾸는 과정

JAVA 컴파일

OS마다 기계어를 읽어드리는 방식이 다르기 때문에
JAVA는 컴파일러를 통해 .class(바이트코드)로 변환 후 JVM으로 OS에 맞춰서 기계어로 바꾼다

  • 자바 소스코드를 자바 컴파일러를 통해 컴파일한다
  • 컴파일된 .class(바이트코드)를 JVM 클래스 로더에 전달

JVM(JAVA Virtual Machine)

클래스 로더를 통해 컴파일된 JAVA코드를 읽어 들여 OS에 맞게 기계어로 해석해준다
OS에 따라 다르게 컴파일할 필요없이 JVM이 그 역할을 한다

Class Loader

  • Loading -> Linking -> Initialization
  • 클래스 파일 -> 사용하기 위해 검증 -> 기본 값으로 초기화


Runtime Date Area

  • 운영체제로부터 할당 받은 메모리 공간
  • Static 변수, 클래스, 메소드 등..


Excution Engine

  • 인터프리터 : 한줄 한줄 해석하고 실행, 전체적인 실행 속도가 느리다
  • JIT 컴파일러(Just-In-Time) : 인터프러터의 단점을 보완, 바이트 코드 전체를 컴파일 하여 바이너리 코드로 변경하고 바이너리 코드로 직접 실행하는 방식

반응형