반응형
컴파일
- 컴퓨터에서 컴파일은 기계가 해석할 수 있는 언어로 바꾸는 과정
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) : 인터프러터의 단점을 보완, 바이트 코드 전체를 컴파일 하여 바이너리 코드로 변경하고 바이너리 코드로 직접 실행하는 방식
반응형