JVM, JRE , JDK

LSM ·2021년 12월 25일
0
post-custom-banner

가장 먼저 java 프로그램 실행과정 부터 설명하겠다.

  • 프로그램이 실행되면 JVM은 OS로부터 이 프로그램이 필요로 하는 메모리를 할당받는다.
  • JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리한다.
  • 자바 컴파일러 (javac)가 Java 소스 코드 (java)를 읽어들여 자바 바이트 코드(.class)로 변환한다.
  • Class Loader를 통해 class 파일들을 JVM으로 로딩한다.
  • 로딩된 Class 파일들은 Execution engine을 통해 해석된다.
  • 해석된 바이트코드는 Runtime Data Areas 에 배치되어 실질적인 수행이 이루어지게 된다.
  • 실행과정 속에서 JVM은 필요에 따라 쓰레드 동기화와 GC같은 관리 작업을 수행한다.

1. JVM (Java Virtual Machine) 이란 ?

JVM은 자바 가상 머신으로 자바 애플리케이션을 class loader를 통해 읽어 들여 자바 API와 함께 실행하는 것이다. 그리고 JVM은 Java와 OS 사이에서 중간자 역할을 수행하여 Java가 OS에 구애받지 않고 재사용을 기능하게 해준다. 가장 중요한 메모리 관리, GC를 수행한다.

한정된 메모리를 효율적으로 사용하여 최고의 성능을 내기 위해서 JVM을 알아야한다. 메모리 효율성을 위해 메모리 구조를 알아야 하기 때문이다. 동일한 기능의 프로그램이더라도 메모리 관리에 따라 성능이 좌우된다. 메모리 관리가 되지 않은 경우 속도 저하 현상이나 튕김 현상 등이 일어날 수 있다.


2. JRE (Java SE Runtime Enviroment)란?

JRE(Java Runtime Enviroment) : 컴파일된 자바 프로그램을 실행시킬 수 있는 자바 환경.
JRE는 JVM이 자바 프로그램을 동작시킬 때 필요한 라이브러리 파일들과 기타 파일들을 가지고 있다. 즉, JRE는 JVM의 실행환경을 구현했다고 할 수 있다.
자바 프로그램을 실행시키기 위해선 JRE를 반드시 설치해야한다. 하지만 자바 프로그래밍 도구는 포함되어있지 않기 때문에 자바 프로그래밍을 하기 위해선 JDK가 필요하다. Java 언어 개발자는 Java 언어로 작성된 소스를 컴파일하고 관리한다. 이 때 사용되는 도구를 JDK (Java SE Development Kit)라고 한다. JDK 안에는 JRE도 포함이 되어있다. 컴파일한 결과를 실행하기 위해서는 JRE가 필요하기 때문이다.


출처:
https://ozofweird.tistory.com/entry/Java-JVM-JDK-JRE-JAR-vs-WAR
https://goodgid.github.io/Java-JDK-JRE/

profile
개발 및 취준 일지
post-custom-banner

0개의 댓글