JVM

이지호·2021년 11월 22일
0

JVM이란?

JVM(Java Virtual Machine)은 자바 가상머신이다.

가상머신이란 뜻은 여러가지가 있지만, 대표적으로 물리적 머신을 소프트웨어로 유사하게 구현한 것이라고 할 수 있다.

자바는 원래 WORA(Write Once, Run Anywhere)를 구현하기 위해 가상머신을 기반으로 동작하게 설계된 것이다. 그래서 자바 바이트코드를 실행하는 모든 종류의 하드웨어에서 JVM을 동작시켜 자바 코드를 수정하지 않고도 동작되는 것이다.

JVM은 자바 소스파일을 컴파일 하여 나온 자바 바이트코드를 해석하고 실행하는 역할을 수행한다.

JVM의 특징

  • 스택 기반의 가상머신: x86 아키텍처나 ARM아키텍처는 레지스터 기반으로 동작하지만, JVM은 스택 기반으로 동작한다.
  • 심볼릭 레퍼런스: 기본 자료형을 제외한 모든 타입은 심볼릭 레퍼런스를 통해 참조
  • 가비지 컬렉션: 클래스 인스턴스는 사용자코드에 의해 생성되고 가비지 컬렉션에 의해 삭제된다.
  • 네트워크 바이트 오더: 자바 클래스 파일은 네트워크 바이트 오더를 사용한다.
    바이트 오더는 데이터가 바이트 단위로 메모리에 저장되는 순서를 의미하며, 리틀엔디안, 빅엔디안이 있다.
    네트워크 바이트 오더는 플랫폼 독립성을 유지하기 위해서 사용되며, 빅엔디안 방식을 이용한다.

JVM구조

자바 코드로 작성된 프로그램은 다음과 같은 과정을 통해 실행된다.
자바 소스파일은 자바 컴파일러가 JVM이 이해할 수 있는 언어인 자바 바이트 코드로 변환된다.
그러면 클래스로더(Class Loader)가 자바 바이트코드를 런타임 데이터 영역(Runtime Data Area)에 로드하고 실행엔진이 자바 바이트코드를 명령어 단위로 읽어서 실행하게 된다.

0개의 댓글