Dev 달팽이 @_''

Java- JVM, JDK, JRE 본문

Java&Spring/더 자바, 코드를 조작하는 다양한 방법

Java- JVM, JDK, JRE

다본죽 2022. 1. 6. 22:25

JAVA - JVM, JDK, JRE

 

 

JVM (Java Virtual Machine)

  • 자바 가상 머신으로 자바 바이트 코드(.class 파일)를 OS에 특화된 코드로 변환(인터프리터와 JIT 컴파일러)하여 실행한다.
  • 바이트 코드를 실행하는 표준(JVM 자체는 표준)이자 구현체(특정 밴더가 구현한 JVM)다.
  • JVM 밴더 : 오라클, 아마존, Azul
  • 특정 플랫폼에 종속적 (네이티브 코드로 바꿔야 하는데 네이티브 코드가 OS에 맞춰서 실행해야 하기 때문에)

JRE (Java Runtime Environment)

  • 자바 애플케이션을 실행할 수 있도록 구성된 배포판
  • JVM과 핵심 라이브러리 및 자바 런타임 환경에서 사용하는 프로퍼티 세팅이나 리소스 파일을 가지고 있다. (JVM+라이브러리)
  • 개발 관련 도구는 포함되지 않는다. (JDK에서 제공)

JDK (Java Development Kit)

  • JRE+개발에 필요한 툴
  • 소스 코드를 작성할 때 사용하는 자바 언어는 플랫폼 독립적
  • 오라클은 자바 11부터 JDK만 제공하여 JRE를 따로 제공하지 않는다.

Java

  • 프로그래밍 언어
  • JDK에 들어있는 자바 컴파일러(javac)를 사용하여 바이트코드(.class 파일)로 컴파일 할 수 있다.
  • 자바와 JDK 구분

JVM 언어

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