Java Virtual Machine의 줄임말로, 자바 프로그램을 실행하기 위한 가상 환경이다.
Java 는 OS에 종속적이지 않다는 특징을 가지고 있는데 OS에 종속받지 않고 실행되기 위해선 OS 위에서 Java 를 실행시킬 무언가가 필요하다.
>> 이것이 바로 JVM (즉, OS에 종속받지 않고 CPU 가 Java를 인식, 실행할 수 있게 하는 가상 컴퓨터)
자바 프로그램은 JVM 위에서 실행되며, JVM은 하드웨어와 운영체제에 독립적인 실행 환경을 제공한다. JVM은 자바 바이트코드를 읽고 이를 실행하며, 이를 통해 자바가 플랫폼 독립성을 갖게 된다.
주요 기능
- 바이트코드 실행: 자바 컴파일러가 생성한 바이트코드를 실행하여 자바 프로그램이 실행될 수 있도록 한다.
- 메모리 관리: JVM은 메모리를 효율적으로 관리하기 위해 Garbage Collection을 통해 불필요한 객체를 자동으로 메모리에서 제거한다.
- 플랫폼 독립성: JVM 덕분에 자바 프로그램은 한 번만 작성되면, 다양한 운영체제에서 수정 없이 실행될 수 있다.
- JIT 컴파일: JVM은 Just-In-Time(JIT) 컴파일러를 사용해, 자주 실행되는 코드의 성능을 최적화하여 바이트코드를 네이티브 머신 코드로 변환한다.
JVM의 구성 요소
- Class Loader: 자바 클래스 파일을 JVM 내부로 로드하는 역할을 합니다.
- Runtime Data Areas: JVM이 실행되는 동안 사용하는 메모리 영역으로, Heap, Stack, Method Area, PC Register 등을 포함합니다.
- Execution Engine: 바이트코드를 실행하는 엔진으로, 인터프리터와 JIT 컴파일러로 구성된다.
- Garbage Collector: 메모리 관리를 위한 자동화된 도구로, 사용되지 않는 객체를 자동으로 해제한다.
'Develop > Java' 카테고리의 다른 글
JDBC(Java Database Connectivity)란 무엇인가? (0) | 2024.07.29 |
---|---|
Page를 List로 Controller에서 간단히 바꾸기 (0) | 2024.07.22 |
enums 사용할 경우에 굳이 each 돌리지 않고 해당 값의 desc 간단하게 불러오기 (0) | 2024.07.22 |
게시판 상세페이지에서 이전글, 다음글 구현하기 (0) | 2024.07.02 |
[Thymeleaf] temporals.format 으로 날짜 설정하기 (0) | 2024.06.28 |