JVM(Java Virtal Machine)
JVM은 자바 프로그램이 실행되는 가상 컴퓨터이다. JVM은 자바 바이트 코드를 기계어로 변환하고 실행하여 자바 프로그램을 실행한다.
- Java는 컴파일 단계에서 일반적인 프로그래밍 언어와 차이가 있다.
일반적인 프로그래밍 언어의 작동 방식
- 코드 작성: 프로그래머가 해당 언어(High-Level)로 원하는 기능을 구현하는 소스 코드를 작성한다.
- *컴파일: 프로그래머가 작성한 코드를 컴파일러가 컴퓨터가 읽을 수 있는 언어(기계어; Low-Level)로 변환한다.
- 실행(OS): 컴파일 단계에서 생성된 기계어 코드를 하드웨어가 읽어 명령을 수행한다.
Java(JVM)의 작동 방식
- 코드 작성: 프로그래머가 자바 언어로 원하는 기능을 구현하는 소스 코드를 작성한다.
- *컴파일: 자바 컴파일러는 자바 언어로 작성된 소스 코드(.java)를 자바 바이트 코드(.class)로 변환합니다. 바이트 코드는 JVM이 이해할 수 있는 중간 언어이다.(High ↔ Low)
- *실행(JVM): 변환된 자바 바이트 코드를 JVM이 실행한다. JVM은 자바 바이트 코드를 특정 플랫폼(OS, 하드웨어)에 맞는 기계어로 해석한다.
- 실행(OS): JVM이 생성한 기계어 코드를 하드웨어가 읽어 명령을 수행한다.
요약
- 다른 언어
- 컴파일 단계에서 대상 운영체제가 정해진다
- 따라서 다른 운영체제에서 사용하기 위해서는 해당 운영체제를 대상으로 새로 컴파일해야한다.
- 자바
- 컴파일 결과가 JVM이 읽을 수 있는 형태로 작성된다. JVM은 이 코드를 운영 체제에 맞게 실행하는 역할을 한다.
- 따라서 한 번 컴파일된 코드는 여러 운영 체제에서 사용될 수 있다.(Write Once, Run Anywhere)