티스토리 뷰

Java

Java - JVM, JRE, JDK 이해하기

엔꾸꾸 2019. 10. 14. 22:16

JVM, JRE, JDK 이해하기

 

 

JVM (Java Virtual Machine)

  • 자바 가상머신으로 자바 바이트 코드를 인터프리터, JIT컴파일러를 사용해서 Native OS 에 최적화된 코드로 변형한 뒤 실행하는 역할을 한다.
  • 바이트 코드를 실행하는 표준이자 구현체 이다.
    • JVM 자체는 표준이며, 특정 벤더가 구현한 JVM 이 구현체이다
  • JVM 스펙
  • 특정 플랫폼(OS)에 종속적이다.

JVM의 역할

  • 클래스를 읽어 들인다.
  • 메모리에 로드한다.
  • 여러 구역으로 나뉘어진 메모리 공간을 관리한다.
  • 바이트 코드를 실행

벤더

  • 오라클, 아마존, Azul ...

 

JRE(Java Runtime Environment)

  • JVM 홀로 제공 되지않으며 최소한의 배포단위가 JRE이다.
  • JVM과 몇몇 라이브러리를 같이 배포한다.
  • Java 애플리케이션을 실행하도록 하는것이 목적이다.
  • Java 애플리케이션을 실행하기위한 최소한의 패키지이다.
  • 개발시 필요한 툴들은 제공하지 않는다.
  • 자바 컴파일러는 들어있지 않음

 

JDK(Java Development Kit)

  • JRE + 개발에 필요한 툴
  • 자바 11부터는 JDK만 제공하고, JRE를 따로 제공하지 않는다.
  • Write One Run Anywhere
  • Java9 부터 모듈 시스템을 제공한다.
  • 모듈 시스템을 이용하여 JRE를 구성할수 있다.
    • Jlink

 

자바

  • 프로그래밍 언어
  • JDK에 들어있는 자바 컴파일러를 사용하여 바이트코드로 컴파일 할 수 있다.
  • 자바를 JDK, JRE, JVM을 통틀어 말하는 케이스가 많다.
  • 자바 유료화 ? -> 오라클에서 만든 Oracle JDK11 부터 상용으로 사용시 유료이다.

 

타 프로그래밍 언어 지원

  • JVM기반으로 작동하는 프로그래밍 언어
  • 클로저, 그루비, JRuby, Jython, Kotlin, Scala..

 

참조

'Java' 카테고리의 다른 글

Java - Javaagent  (0) 2019.10.17
Java - 모자에서 토끼를 꺼내는 마술  (0) 2019.10.16
Java - 코드 커버리지  (0) 2019.10.16
Java - ClassLoader System  (0) 2019.10.16
Java - JVM의 구조  (0) 2019.10.15
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함