JDK, JRE, JVM 간략 정리

itonse·2024년 7월 29일
0

JAVA

목록 보기
11/19

이미지 출처

1. JDK (Java Development Kit)

  • 자바 개발 키트로, Java 프로그램을 개발하기 위해 필요한 도구 모음이다.
  • 자바 소스 코드를 컴파일 하고 디버깅 할 수 있는 도구를 제공한다.

구성 요소

JDK에는 JRE, 컴파일러(javac), 디버깅 도구, JVM 등이 포함되어 있다.

JDK 버전

  • JAVA의 버전은 JDK의 버전이다.
  • 각 버전별로 새로운 기능이 추가되거나 기존 기능이 사라질 수 있습니다.
    - ex) JDK 1.8에는 람다와 스트림이 추가되었다.

JDK 종류

Oracle JDK: 오라클에서 만든 JDK로, 개인에게는 무료지만 기업용은 유료이다.
Open JDK: Oracle JDK와 비슷한 성능을 제공하며, 언제나 무료이다.



2. JRE (Java Runtime Environment)

  • 자바 런타임 환경으로, JVM을 동작시키는 데 필요한 각종 자바 라이브러리를 담고 있다.
  • 자바 애플리케이션을 실행할 수 있는 환경을 제공한다.

구성 요소

JRE는 JVM과 자바 프로그램 실행에 필요한 라이브러리 파일 등으로 구성되어 있다.



3. JVM (Java Virtual Machine)

  • 자바 가상 머신으로, 자바 애플리케이션을 실행하는 런타임 엔진 역할을 한다.
  • 자바 프로그램을 OS에 맞게 번역하여 실행한다. (JVM은 운영체제마다 다른 '컴파일러'가 필요 없게 한다)

구성 요소

JVM은 JRE의 일부로 포함되어 있다.

클래스 로더

  • 자바 클래스 파일을 로드하고, 필요한 클래스들을 찾아 JVM 내로 가져오는 역할을 한다.
  • 런타임에 동적으로 클래스를 로드할 수 있다.

런타임 데이터 영역

  • JVM이 실행될 때 사용하는 메모리 공간이다.
  • 내부에 메서드 영역, 스택 영역, 힙 영역, PC 레지스터, 네이티브 메서드 스택이 존재한다.

실행 엔진(Execution Engine)

  • 자바 바이트코드를 실제로 실행하는 컴포넌트이다.
  • 바이트코드를 한 줄씩 읽고 실행하는 인터프리터와, 자주 사용되는 바이트코드를 네이티브 코드로 변환하여 실행 속도를 높이는 JIT Compiler가 함께 작동한다.

가비지 컬렉터

  • 더 이상 참조되지 않는 객체를 메모리에서 자동으로 해제한다.


+ Additional

컴파일? 런타임?

컴파일: 프로그램을 위해 작성한 소스 코드를 기계가 처리하기 용이한 형태로 바꾸는 과정이다.

런타임: 컴파일 과정을 마친 컴퓨터 프로그램이 실제로 실행되고 있는 시간이나 환경을 의미한다.

JAVA_HOME

JDK가 설치된 디렉토리 경로를 가리킨다.

설정 방법: PATH 변수에 JAVA_HOME\bin 경로를 추가하여, 명령 프롬프트에서 자바 명령어를 사용할 수 있게 한다.


자바를 설치한다는 것은?

JDK 또는 JRE를 설치하는 것을 의미한다. 일반적으로 개발 목적으로 JDK를 설치한다.

JDK에는 JRE가 포함되어 있고, JRE에는 JVM이 포함되어 있어 구성 관계는 다음과 같다.

  • JDK > JRE > JVM

따라서 JDK를 설치하면 JRE와 JVM도 함께 설치된다.


ref.
[java] JDK란 무엇인가?(+JRE,JVM)
https://cloudsoswift.github.io/post/develop/java/architecture-of-jvm/
https://www.ibm.com/kr-ko/topics/jre
https://betterdev.tistory.com/2
https://www.youtube.com/watch?v=f0cAmTYo4tQ

0개의 댓글

관련 채용 정보