JVM
- 자바 가상 머신(Java Virtual Machine)의 약자.
- 자바를 실행하기 위해 가상화된 환경을 제공하는 소프트웨어.
- 컴파일러에 의해 변환된 바이트 코드를 기계어로 변환 시키는 가상 CPU
- 자바로 작성된 모든 프로그램은 JVM에서만 실행될 수 있으므로, 자바 프로그램을 실행하기 위해서 반드시 JVM이 설치되어 있어야 한다.
JVM를 사용하는 이유
플랫폼 독립성
- Java는 JVM을 통해 모든 플랫폼에서 제약없이 동작 가능하다.
- JVM은 OS에 종속받지 않고 실행되기 위해 OS에 위해서 Java를 실행할 수 있도록 한다.
C언어의 경우 개발자가 소스 코드를 작성하면, 컴파일러에 의해 소스 코드는 바이트 코드로 변환된다. 이때 컴파일러는 같은 형식의 바이트 코드를 만들어 내지만, 각 OS 환경에 맞춰진 독자적인 컴파일러이기 때문에 다른 환경에서는 이해하지 못하는 상황이 발생한다.
즉, Windows에서 컴파일된 코드는 Mac환경에서는 해당 코드를 이해하지 못하게 되므로 OS 환경에 따라 코드를 변경해야 하는 불편한 문제점이 존재한다.
Java의 JVM은 이러한 문제를 해결한다.
Java로 작성한 소스 코드는 직접 운영체제로 가서 실행하는 것이 아닌, JVM을 거쳐 운영체제와 상호작용을 하게 된다. 컴파일러에 의해 변환된 바이트 코드를 JVM이 해당 운영체제 환경에 알맞게 코드를 변환해준다. 이 덕분에 운영체제와 상관없이 독립적으로 프로그램을 실행할 수 있다.
💡 Java 소스 코드는 JVM에 의해 운영체제에 독립적이지만 JVM 자체는 운영체제에 종속적이므로 각 운영체제에 맞는 버전을 설치해야 한다.
JVM의 단점
자바 프로그램은 다른 프로그램과 달리 JVM의 단계를 하나 더 거쳐야 하므로 상대적으로 실행 속도가 느리다.
Reference.
https://steady-coding.tistory.com/305
'Backend > JVM' 카테고리의 다른 글
가비지 컬렉션(Garbage Collection, GC)의 작동 원리 (0) | 2023.09.11 |
---|---|
JVM 힙(Heap) 영역 (0) | 2023.09.08 |
가비지 컬렉션(Garbage Collection, GC)의 개념 (0) | 2023.09.01 |
JVM 동작 방식 및 메모리 구조(2) (0) | 2023.08.31 |
JVM 동작 방식 및 메모리 구조(1) (0) | 2023.08.30 |