목차
자바 가상 머신이란
자바 가상 머신(Java Virtual Machine, JVM)은 컴퓨터가 자바 바이트코드로 컴파일된 다른 언어로 작성된 프로그램뿐만 아니라 자바 프로그램을 실행할 수 있게 해주는 가상 머신이다. JVM은 자바 바이트코드의 실행을 위한 런타임 환경을 제공하는 추상 컴퓨팅 머신이다.
JVM은 바이트 코드를 해석하여 호스트 시스템의 하드웨어와 운영 체제에 매핑하므로 프로그램이 수정 없이 다양한 플랫폼에서 실행될 수 있습니다. JVM은 또한 메모리 관리, 스레드 관리, 보안과 같은 일련의 내장 서비스를 제공하여 자바 프로그램이 이식 가능하고 안전할 수 있도록 한다.
JVM은 플랫폼 독립적으로 설계되었으며 윈도우, 리눅스, 맥, 안드로이드와 같은 모바일 플랫폼에 구현된다. 이것은 자바 프로그램이 한 번 작성되고 JVM이 설치된 어떤 플랫폼에서도 실행될 수 있다는 것을 의미한다.
또한 JVM은 바이트 코드를 네이티브 머신 코드로 즉시 변환할 수 있는 JIT(Just-In-Time) 컴파일러를 제공하여 프로그램의 성능을 향상시킨다.
요약하자면, 자바 가상 머신(JVM)은 컴퓨터가 자바 바이트코드로 컴파일된 자바 프로그램과 다른 언어들을 실행할 수 있게 해주는 소프트웨어이다. 실행 시 환경, 기본 제공 서비스, JVM를 사용하여 다른 플랫폼에서 동일한 프로그램을 실행할 수 있는 기능을 제공합니다.
자바 가상 머신의 특징
- JVM은 자바 바이트코드 실행을 위한 런타임 환경을 제공하는 추상 컴퓨팅 머신이다.
- JVM은 플랫폼 독립적으로 설계되었으며, 윈도우, 리눅스, 맥, 안드로이드와 같은 모바일 플랫폼에 구현되어 자바 프로그램을 다른 환경에서 이식할 수 있다.
- JVM은 자바 바이트코드의 실행을 위한 환경을 제공하며 메모리 관리, 스레드 관리, 보안을 관리하여 자바 프로그램이 이식 가능하고 안전할 수 있도록 한다.
- 바이트 코드를 해석한다: JVM은 바이트 코드를 해석하여 호스트 시스템의 하드웨어와 운영 체제에 매핑하여 프로그램이 수정 없이 다양한 플랫폼에서 실행될 수 있도록 한다.
- JVM은 바이트 코드를 네이티브 머신 코드로 즉시 변환할 수 있는 JIT 컴파일러를 제공하여 프로그램의 성능을 향상시킨다.
- Garbage collector: JVM은 또한 메모리를 자동으로 관리하고 더 이상 사용되지 않는 객체로부터 메모리를 해방시켜 프로그래머가 메모리를 수동으로 관리해야 하는 부담을 줄여주는 Garbage collector를 포함한다.
- 클래스 로더를 제공한다: JVM은 클래스 파일을 로드하고 런타임에 프로그램에서 사용할 수 있도록 하는 내장 클래스 로더를 가지고 있다.
- 보안을 강화합니다. JVM은 코드가 안전한 환경에서 실행될 수 있도록 일련의 보안 기능을 제공하며, 시스템 리소스에 대한 액세스를 제어하기 위해 일련의 보안 정책을 적용하는 보안 관리자를 제공합니다.