본문 바로가기

Coding Language/Java기초

[Java 기초] 자바 가상 기계 (JVM)

https://aridom.tistory.com/79 에서 Java가 기동되기 위해선 JVM이 필요하다고 했다.
이번에는 이 JVM에 대해 간략하게 알아보자.

Java가 운영체제에 종속적이지 않고 어느 환경에서나 실행이 가능하다.

이러한 기능을 제공해주는것이 JVM이라 생각하면 된다.

 

운영체제는 Java 프로그램을 바로 실행할 수 없다. JRE또는 JDK를 설치하여 JDK가 있어야 Java를 실행시킬 수 있다.

Java 프로그램은 완전한 기계어가 아닌 중간 단계의 바이트 코드이기 때문에 이것을 해석하고 실행할 수 있는 가상의 운영체제가 필요하다. 이것이 바로 JVM(Java Virtual Machine)이다.

운영체제별로 프로그램을 실행하고 관리하는 방법이 다르기 때문에 각각의 운영체제별로 Java 프로그램을 개발하기 보다는 운영체제와 Java 프로그램을 중계하는 JVM을 두어 여러 운영체제 환경에서도 동일한 실행 결과가 나오도록 설계한 것이다. 따라서 개발자는 운영체제와 상관없이 Java 프로그램을 개발할 수 있다.

바이트 코드는 모든 JVM에 동일한 실행 결과를 보장하지만, JVM은 운영체제에 종속적이다. 따라서 Java 프로그램을 운영체제가 이해하는 기계어로 번역해서 실행해야 하므로 JVM은 운영체제에 맞게 설치되어야 한다.
JVM은 JDK 또는 JRE를 설치하면 자동으로 설치되며, JDK와 JRE가 운영체제 별로 제공하니 운영체제에 맞게 설치하도록 하자.

 

Eclipse에서 프로젝트 생성 후 Class파일을 생성하면 .java파일이 생성되는 것을 볼 수 있다. 이것을 소스 파일이라고 하는데, Java는 이 소스 파일을 javac.exe(컴파일러)로 컴파일하면 확장자가 .class인 바이트 코드 파일이 생성된다.

바이트 코드 파일은 JVM 구동 명령어인 java.exe에 의해 JVM에서 해석되고 해당 운영체제에 맞게 기계어로 번역된다.

 

참고서적 : 이것이 자바다

'Coding Language > Java기초' 카테고리의 다른 글

[Java 기초] 프로그래밍 언어 와 Java  (0) 2021.08.02