Develop/Java

[JAVA] JVM이란? 개념과 구조

롱하 2024. 10. 16. 09:13

Java Virtual Machine의 줄임말로, 자바 프로그램을 실행하기 위한 가상 환경이다.

Java 는 OS에 종속적이지 않다는 특징을 가지고 있는데 OS에 종속받지 않고 실행되기 위해선 OS 위에서 Java 를 실행시킬 무언가가 필요하다.

>> 이것이 바로 JVM (즉, OS에 종속받지 않고 CPU 가 Java를 인식, 실행할 수 있게 하는 가상 컴퓨터)

 

자바 프로그램은 JVM 위에서 실행되며, JVM은 하드웨어와 운영체제에 독립적인 실행 환경을 제공한다. JVM은 자바 바이트코드를 읽고 이를 실행하며, 이를 통해 자바가 플랫폼 독립성을 갖게 된다.

 

 

주요 기능

  1. 바이트코드 실행: 자바 컴파일러가 생성한 바이트코드를 실행하여 자바 프로그램이 실행될 수 있도록 한다.
  2. 메모리 관리: JVM은 메모리를 효율적으로 관리하기 위해 Garbage Collection을 통해 불필요한 객체를 자동으로 메모리에서 제거한다.
  3. 플랫폼 독립성: JVM 덕분에 자바 프로그램은 한 번만 작성되면, 다양한 운영체제에서 수정 없이 실행될 수 있다.
  4. JIT 컴파일: JVM은 Just-In-Time(JIT) 컴파일러를 사용해, 자주 실행되는 코드의 성능을 최적화하여 바이트코드를 네이티브 머신 코드로 변환한다.

JVM의 구성 요소

  1. Class Loader: 자바 클래스 파일을 JVM 내부로 로드하는 역할을 합니다.
  2. Runtime Data Areas: JVM이 실행되는 동안 사용하는 메모리 영역으로, Heap, Stack, Method Area, PC Register 등을 포함합니다.
  3. Execution Engine: 바이트코드를 실행하는 엔진으로, 인터프리터와 JIT 컴파일러로 구성된다.
  4. Garbage Collector: 메모리 관리를 위한 자동화된 도구로, 사용되지 않는 객체를 자동으로 해제한다.