Java 프로그램은 주로 다음과 같은 이유로 JVM(Java virtual machine) 에서 실행되어야 합니다.
1. 플랫폼 독립성: Java 프로그램이 작성한 코드는 플랫폼 독립성입니다. 즉, 소스 코드가 동일하면 다른 플랫폼에서 실행할 수 있습니다. 이는 Java 소스 코드를 바이트 코드 파일 (.class 파일) 로 컴파일한 다음 JVM 이 해당 바이트 코드의 실행을 해석하여 수행됩니다. 이렇게 하면 서로 다른 플랫폼에 같은 버전의 JVM 을 설치하면 같은 Java 프로그램을 실행할 수 있습니다.
2. 메모리 관리: Java 프로그램은 가비지 수집 메커니즘을 사용하여 메모리를 자동으로 관리하므로 프로그래머가 수동으로 메모리를 할당하고 회수하는 복잡성을 피할 수 있습니다. 프로그램이 더 이상 사용되지 않을 때 JVM 은 사용하는 메모리 리소스를 자동으로 회수하여 프로그램의 안정성과 신뢰성을 보장합니다.
3. 보안: JVM 은 악성 코드가 시스템을 손상시키는 것을 방지하기 위해 클래스 로더, 보안 관리자 등과 같은 다양한 보안 기능을 제공합니다. 또한 JVM 은 프로그램에 대한 액세스를 제한하여 중요한 정보가 유출되지 않도록 할 수 있습니다.
4. 성능 최적화: JVM 은 프로그램의 실제 요구 사항에 따라 바이트 코드를 즉시 컴파일 (JIT) 하거나 해석하여 다양한 수준의 성능 최적화를 수행할 수 있습니다. 이렇게 하면 Java 프로그램의 실행 속도와 응답 시간을 향상시킬 수 있습니다.
5. 멀티 스레드 지원: Java 프로그램은 여러 스레드를 생성하여 동시 프로그래밍을 구현함으로써 프로그램 실행 효율성을 높일 수 있습니다. JVM 은 스레드 동기화, 교착 상태 처리 등 멀티 스레드 프로그래밍에 대한 검증된 지원을 제공합니다.
결론적으로, Java 프로그램은 JVM 에서 실행되며 플랫폼 간, 보안, 효율성, 유지 관리가 용이한 소프트웨어 개발 목표를 달성할 수 있습니다.