카테고리 없음

JVM, JDK, JRE 정리

느리지만 꾸준하게 2024. 11. 6. 23:24

Java 동작구조

Java의 동작구조

 

Java의 동작 구조를 한 번 살펴 보자.

 

1. 개발자는 사람이 이해할 수 있는 언어로 소스 코드를 작성한다. Java

2. 자바 컴파일러 javac.exe가 자바 소스코드를 읽어서 가상 머신이 이해할 수 있는 바이트 코드로 변환한다.(.class)

3. Class Loader를 통해서 .class 파일이 JVM 메모리에 적재된다.

4. JVM이 JAVA Interpreter(java.exe) 및 JIT 컴파일러를 이용해서 바이트 코드를 실행한다.

5. JVM이 메모리 관리, 스레드 관리 등의 런타임 환경을 제공한다.

 

JVM은

  • JVM은 자바 가상 머신을 자바 바이트코드를 실행하는 플랫폼 독립적인 실행 환경을 제공한다.
  • JVM은 컴파일된 바이트 코드를 해당 운영 체제가 이해할 수 있는 기계어로 변환하고 실행한다.
  • JVM의 존재로 같은 자바 프로그램을 한 번 작성하면 어느 운영체제에서나 다 잘 작동한다. -> Write Once, Run AnyWhere

 

JDK&JRE의 차이점

JDK와 JRE 또한 JVM이랑 마찬가지로 자바 개발 및 실행에 있어서 필수적인 구성요소이다. 구조는 아래와 같다.

JDK <- JRE <- JVM

 

JRE는 자바 실행 환경으로 자바 프로그램을 실행하기 위해 필요한 JVM과 자바 클래스 라이브러리, 그리고 다른 지원 파일들을 포함한다. JRE만으로 Java 프로그램 실행은 가능하나, 컴파일러가 없어서 자바 프로그램 개발은 불가능하다. JRE는 JVM을 동작하기 위한 자바 실행 환경이다.

 

JDK는 자바 개발 키트로 자바로 프로그램까지 개발하고 싶다 그러면 JDK를 설치해야 한다. 자바 설치한다 하면 JDK를 설치하는 것과 같은 의미이다. JDK는 JRE와 JVM을 포함하고 있고, .java 파일들을 .class 파일들로 변환하는 JavaComplier(javac) 기능이 있다.

JDK는 jdb 개발 도구를 통해서 디버깅 기능도 제공한다.

 

결론

=> JVM은 컴파일된 바이트 코드를 운영체제가 이해할 수 있는 기계어로 번역해 실행하는 가상머신

=>  JDK와 JRE의 차이점은 JRE는 JVM을 포함하여 자바 프로그램을 실행하기 위해 필요한 자바 클래스 라이브러리, 그 밖에 다른 지원파일을 포함하는 자바 실행 환경. 그리고 컴파일러가 없기 때문에 오직 실행만 가능하다.

JDK는 자바 컴파일러를 포함해서 자바로 프로그램을 개발하기 위해 필요한 모든 도구를 포함한 키트이다. 자바로 프로그램을 개발하려면 JDK를 설치해야 한다.

 

참고: [Java]JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가 - JVM 개념과 구성요소 및 실행과정 / JDK와 JRE 차이

https://wonyong-jang.github.io/java/2020/11/08/Java-JVM.html

 

[Java] JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가 - SW Developer

1)Java Virtual Machine 은 자바를 실행하기 위한 자바 가상머신이다. 자바와 운영체제 사이에서 중계자 역할을 하며, 자바가 운영체제 종류에 영향을 받지 않고 실행 가능하도록 한다. 2) 운영체제 위

wonyong-jang.github.io