JVM이란
자바 가상 머신의 줄임말로 Java 언어로 작성된 프로그램을 실행하기 위한 가상 머신이다.
"Write Once, Run Anywhere"
주요 특징
- 바이트 코드 실행
Java 프로그램은 소스 코드를 컴파일하여 바이트 코드로 변환한다. JVM은 이 바이트 코드를 실행하는 역할을 한다. 바이트 코드는 중간 단계로, Java 코드를 기계어 코드로 직접 번역하는 대신 JVM 위에서 실행된다. - 플랫폼 독립성
JVM은 Java 바이트 코드를 실행하므로, 한 번 작성된 Java 애플리케이션은 어떤 플랫폼(운영 체제 및 하드웨어)에서도 동일하게 실행될 수 있다. 이로써 개발자는 여러 플랫폼에 대한 별도의 코드를 작성하지 않아도 된다. - 메모리 관리
JVM은 가비지 컬렉션(Garbage Collection)을 통해 메모리를 관리한다. 가비지 컬렉션은 더 이상 필요하지 않은 객체를 자동으로 제거하여 메모리 누수를 방지한다. - 클래스 로딩
JVM은 클래스 로더(Class Loader)를 사용하여 필요한 클래스를 동적으로 로드한다. 클래스 로더는 클래스 파일을 찾아서 JVM 메모리에 로드하고, 클래스의 의존성을 해결한다. - 다중 스레딩 지원
JVM은 다중 스레드를 지원하며, 멀티코어 프로세서에서 병렬 실행을 활용할 수 있다. - Just-In-Time 컴파일러
JVM은 바이트 코드를 실행하기 전에 Just-In-Time(JIT) 컴파일러를 사용하여 바이트 코드를 기계어로 번역한다.
-> 실행 속도 향상
JVM은 Java의 주요 장점 중 하나로, 다양한 플랫폼에서 일관된 실행 환경을 제공하며 안정성과 보안을 강화한다. Java 애플리케이션은 일반적으로 소스 코드를 컴파일하여 바이트 코드로 변환한 다음, 해당 바이트 코드를 JVM에서 실행하므로, Java 애플리케이션은 다른 플랫폼에 대한 대응이 용이하며 비교적 안전하게 실행될 수 있다.
'공부' 카테고리의 다른 글
[SQL] Index (0) | 2023.09.30 |
---|---|
CHAR와 VARCHAR의 차이점 (0) | 2023.09.24 |
JPA N+1 문제에 대하여 (BatchSize, EntityGraph) (0) | 2023.09.15 |
JPA와 JPQL (0) | 2023.09.14 |
Cross-Origin Resource Sharing(CORS)와 preflight (0) | 2023.09.03 |