JVM - 이해하기
1. JVM 이해하기

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

위와 같이 HelloJava라는 Java 파일을 만들고

javac HelloJava.java로 Java를 Compile하면 위의 사진과 같이 class 파일이 생성된다.

그리고 class 파일 안에 있는 파일을 보면 위와 같이 바이트 코드로 구성되어 있다.
이 바이트 코드를 실행하는 것이 인터프리터와 JIT 컴파일러를 사용해 Native OS에 맞춰서 Machine 코드로 변경된다음 실행된다.(ex 10111011....)
JVM은 JVM 혼자 제공되지 않고 최소한의 배포 단위인 JRE로 구성되어있다.
JRE(Java Runtime Environment)
- 자바 애플리케이션을 실행할 수 있도록 구성된 배포판
- JVM과 핵심 라이브러리 및 자바 런타임 환경에서 사용하는 프로퍼티 세팅이나 리소스 파일을 가지고 있다.(JVM + 라이브러리)
- 개발 관련 도구는 포함하지 않는다. (JDK에서 제공)
JDK(Java Development Kit)
- JRE + 개발에 필요한 툴
- 소스 코드를 작성할 때 사용하는 자바 언어는 플랫폼에 독립적
- 오라클은 자바 11부터는 JDK만 제공하며 JRE는 따로 제공하지 않는다.
JAVA
- 프로그래밍 언어
- JDK에 들어있는 자바 컴파일러(javac)를 사용하여 바이트코드(.class 파일)로 컴파일 할 수 있다.
JVM 언어
- JVM 기반으로 동작하는 프로그래밍 언어
- 클로저, 그루비, 코틀린, JRuby, Jython, Scala
Author And Source
이 문제에 관하여(JVM - 이해하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hyun6ik/JVM공부저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)