본문 바로가기
웹·WEB

[JVM] JDK와 JRE 차이

by AROI 2021. 7. 11.

[퍼옴] https://blog.naver.com/thwjd2717/222217677315

 

1. JVM

자바프로그램을 한 번만 작성하면 어떤 컴퓨터 기종이던 상관없이 실행이 가능하다.

자바는 플랫폼에 종속되지 않는다.

이는 JVM에 의하여 소스 코드가 컴파일 되기 때문이다.

자바컴파일러는 자바 언어로 작성된 프로그램을 가상 컴퓨터의 기계어가 들어 있는 파일(바이트코드)로 변환한다.

바이트코드를 JVM이 한 줄 씩 읽어 해석한 후 실행한다.

소스코드 -> 컴파일러 -> 바이트코드 -> JVM 순으로 동작

가비지 컬렉터: 메모리 관리 자동으로 해줌. 안정적

 

 

[compiler fronted: Java Compilier]

.java → .class (바이트코드 확장자)

[compiler backend: JVM]

OS, CPU 아키텍처에 맞게 실행파일 생성

Class Loader

클래스 파일들을 메모리에 적재

ByteCode Verifier

적재된 클래스들의 바이트코드가 이상 없는지 검사

 

 

2. 실행하는 방법 

JVM이 바이트 코드 해석하며 프로그램 실행(런타임)

 

3. 바이트코드란 무엇인가

자바 소스코드를 바이트코드로 변환

(이 때 바이트코드의 확장자는 .class: 클래스 파일)

4. JDK와 JRE 차이

JRE: 자바 프로그램을 실행하기 위한 라이브랄;, 자바 가상 기계, 기타 컴포넌트들을 제공한다. 자바 프로그램을 실행만 할 뿐 개발 하지 않는 일반인들을 위한 환경이다.

JDK: JRE에 자바 프로그램을 개발하는데 필요한 컴파일러, 디버거와 같은 도구들을 추가한 것이다.

요약하자면 JRE에는 JVM, 라이브러리가 있고 JDK는 JRE와 컴파일러, 디버거가 있다.

[출처] 자바 스터디 1주차 정리) JVM, 자바 컴파일 하는 방법, 바이트코드, JIT 컴파일러, JDK와 JRE 차이 등|작성자 아할거없어

 

 

 

그 외 참조 문서 ★

https://j4bez.tistory.com/6

POWER JAVA(저자 천인국)