JVM 란?

이름·2023년 7월 10일

JVM(Java Virtual Machine)

: 자바 언어로 작성된 프로그램을 실행하는 환경을 제공하는 가상 머신입니다.
JVM은 자바 코드를 기계어로 변환하고, 메모리 관리, 스레드 관리, 예외 처리 등을 담당합니다.

JVM 세 가지 구성 요소

  1. 클래스 로더(Class Loader)
    클래스 로더는 자바 클래스 파일을 읽어들여 JVM 내부에서 사용할 수 있는 바이트코드로 변환합니다. 클래스 로더는 필요한 클래스들을 로딩하고, 연결하며 초기화합니다.

  2. 실행 엔진(Execution Engine)
    실행 엔진은 클래스 로더로부터 전달받은 바이트코드를 실행합니다. 바이트코드는 인터프리터 방식으로 실행되거나, JIT(Just-In-Time) 컴파일러를 이용하여 네이티브 코드로 변환되어 실행됩니다.

  3. 런타임 데이터 영역(Runtime Data Area)
    런타임 데이터 영역은 JVM이 프로그램을 실행하는 동안 사용하는 메모리 영역입니다. 런타임 데이터 영역은 크게 세 가지 영역으로 나뉩니다.

    3-1. 메서드 영역(Method Area) : 클래스 로더에 의해 로딩된 클래스 정보와 static 변수 등의 데이터를 저장합니다.
    3-2. 힙 영역(Heap Area) : 객체를 저장하는 메모리 영역입니다.
    3-3. 스택 영역(Stack Area) : 메서드 호출 시 생성되는 지역 변수와 매개변수 등을 저장하는 메모리 영역입니다.

정리

JVM은 자바 코드를 실행하는 과정에서 다양한 최적화 기술을 사용하여 빠른 실행 속도와 효율적인 메모리 사용을 보장합니다.
또한, JVM은 여러 운영 체제에서 동일한 자바 프로그램을 실행할 수 있도록 플랫폼 독립성을 제공합니다.

Byte Code는 JVM 위에서 OS상관없이 실행된다.
이런 점이 Java의 가장 큰 장점이라고 할수 있습니다.

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

0개의 댓글