Java Virtual Machine
Java Virtual Machine
자바 가상 머신의 약자.
자바를 실행하기 위한 가상 기계
Java는 OS에 독립적인 언어이다.
OS에 독립적이라는 말은, OS에 종속되지 않고 Java를 실행할 수 있다는 것이다.
어떻게 가능할까? 그것을 가능하게 하는 것이 바로 JVM
이다.
JVM
은 OS에 종속받지 않고 CPU가 Java를 인식하고 실행할 수 있게 하는 가상 컴퓨터이다.
출처: Working with the JVM | Clojure for the Brave and True (braveclojure.com)
C와 Java의 컴파일 과정을 비교한다.
C는 컴파일러가 source code를 읽고 기계어로 된 명령어를 산출하면 CPU가 해당 명령을 바로 수행한다.
반면 Java는 컴파일러가 bytecode를 산출(.jar 파일)하고, JVM이 *bytecode를 실행하면, CPU에 명령어를 보내 명령을 수행하는 구조이다.
이와 같이 JVM이 징검다리 역할을 하기 때문에 Java가 OS 독립적인 언어가 될 수 있는것이다.
bytecode(바이트코드)
가상 머신(VIrtual Machine)에서 실행도는 프로그램을 위한 이진 표현법
자바 바이트코드는(Java bytecode)는 JVM이 이해할 수 있는 언어로 변환된 자바 소스코드를 의미한다.
자바 컴파일러에 의해 변환된 코드의 명령어 크기가 1바이트라서 자바 바이트 코드라고 불리고 있다.
바이트 코드는 다시 실시간 번역기 또는 JIT 컴파일러에 의해 바이너리 코드로 변환된다.CPU가 이해하는 언어 → binary code(바이너리 코드, 이진 코드)
VM이 이해하는 언어 → bytecode(바이트 코드)
출처: The JVM Architecture Explained - DZone Java
다음 편에 계속....