java소스는 Java Compiler(javac)에 의해 바이트 코드로 변환됨
바이트 코드(.class파일)는 JVM에 의해 구동되고 기계어로 변환 된후 실행됨
- 기계어에서 → 실행까지의 과정을 프로그램에서 Link되었다고 함.
- Link되었다는 것은 프로그램이 구동되기 위해 필요한 메모리를 로딩하고, 실행될수 있도록 실행 준비를 하고, 실행 결정 및 실행 초기화하는 것.
![]() |
TPCSCHOOL.com에서 따온 그림 |
Java compiler
- JVM이 이해할 수 있는 자바 바이트 코드로 변환
- 자바 컴파일러는 javac.exe라는 실행 파일로 설치 됨
Java bytecode
- JVM이 이해할 수 있는 언어로 변환된 자바 소스 코드
- 확장자는 .class
- JVM이 설치되어 있으면 운영체제에 별개로 실행 가능
Java Virtual Machine
- java bytecode를 실행시키는 가상의 machine
- JVM은 운영체제에 종속적이고, 각 운영체제에 알맞는 JVM을 설치해야 함
JVM의 구성
- class loader
- interpreter
- JIT(Just-In_Time) Compiler
- Compiler
- GC(garbage collector)
자바는 동적으로 클래스를 읽어오고, 프로그램이 실행 중인 런타임에 모든 코드가 자바 가상머신과 연결된다.
class loader: 동적으로 클래스를 로딩해준다.
interpreter: 자바 컴파일러에 변환된 자바 바이트 코드를 읽고 해석, dynamic translation이라고도 불리며 프로그램의 실행 속도를 향상시키기 위해 개발됨
JIT Compiler: 바이트코드(컴파일된 자바코드)를 하드웨어의 기계어로 변환Reference → 인프런의 Java 프로그램의 실행 구조
→ [http://tcpschool.com/java/java_intro_programming]
评论
发表评论