[Java] JVM (자바 가상 머신)

H_rin·2023년 8월 6일

JVM 이란?

Java Virtual Machine, 자바 가상 머신의 약자

JVM의 역할은 자바 애플리케이션을 클래스 로더를 통해 읽어 들여 자바 API와 함께 실행하는 것이다.
Java와 OS(운영체제) 사이에서 중개자 역할을 수행하여 Java가 OS(운영체제)에 구애받지 않고 독립적으로 작동이 가능하다.

즉, OS에 종속받지 않고 CPU 가 Java를 인식, 실행할 수 있게 하는 가상 컴퓨터

  • 메모리 관리, Garbage collection을 수행

JVM의 특징

  • 컴파일된 바이트 코드를 기계가 이해할 수 있는 기계어로 변환
  • 스택 기반의 가상 머신

원시코드( *.java )는 CPU가 인식하지 못하기 때문에 기계어로 컴파일을 해줘야 한다.

-> 하지만, Java는 JVM 이라는 가상머신을 거쳐서 OS에 도달하므로 OS가 인식할 수 있는 기계어로 바로 컴파일 되는게 아니라 JVM이 인식할 수 있는 Java bytecode (*.class)로 변환된다.

*.java -> Java Compiler (변환) -> *.class (Java bytecode)

변환된 bytecode는 기계어가 아니므로 OS에서 바로 실행되지 않는다 !
-> 이때, JVM이 OS가 bytecode를 이해할 수 있도록 해석해준다.

그래서 OS에 종속적이지 않고, Java 파일 하나만 만들면 어느 디바이스든 JVM 위에서 실행할 수 있다.

Java bytecode

JVM이 이해할 수 있는 언어로 변환된 자바 소스코드

profile
hyerin / 한단계씩 배워가는 백엔드 개발자..(‘•̀ ▽ •́ )φ

0개의 댓글