JVM(Java Virtual Machine)

Jay Jang·2022년 6월 7일
0

JVM

목록 보기
1/3

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(바이트 코드)


JVM 안에서는 무슨 일이 일어나고 있는가?


출처: The JVM Architecture Explained - DZone Java



다음 편에 계속....

profile
그때는맞고지금은틀리다

0개의 댓글