본문 바로가기

Java

[Java] JRE, JDK, JVM

Java Compile

1. 개발자가 .java 라는 파일을 생성합니다.

2. java의 컴파일러가 .class 라는 바이트 코드를 생성하게됩니다. 아직은 컴퓨터가 이해할 수 없는 파일입니다.

3. 이를 Class Loader 를 이용해 JVM 메모리 내로 로드합니다.

4. JVM은 이를 각 운영체제에 맞는 기계어로 번역하여 동작을 진행합니다.

 

JRE

자바로 짠 소프트웨어가 있다고 가정할게요.

이 소프트웨어가 컴파일 및 빌드까지 다 마치고 실행될 때의 환경요소로써 필요한 것들을 모아둔 곳이에요. JRE가 JVM의 실행환경을 구현했다고도 이야기해요.

예를들어 자바의 List, Map, Set 같은 자료구조들을 바이트로 된 클래스로 제공해주는 것이에요.

 

JDK

JDK는 JRE를 포함해서 가지고 있기 때문에 Java를 설치할 때, JDK만 깔아주시면 돼요.

JDK는 JRE의 기능 말고도 자바 컴파일 할 때 쓰는 Javac 라던가 자바를 디버깅 할 때 쓰는 jdb 등 프로그래머를 위한 기능들도 가지고있어요.

 

JVM

Java Virtural Machine의 약자로 자바가상머신이라 불리는 이 시스템은 자바 프로그램 실행환경을 만들어주는 소프트웨어입니다. Javac를 통해 .class 파일을 만들면 이를 JVM에서 실행하는 형태입니다.

JVM을 사용하면 가장 큰 이점이 플랫폼 또는 운영체제에 영향을 받지 않는다는 점입니다. .class 파일만 있다면 JVM이 각 운영체제에 맞는 실행 파일로 바꿔줍니다.

 

하지만 단점이라고한다면 모든 운영체제에 JVM이 있어야만 각 운영체제에서 Java가 동작을 할 수 있습니다.

또한 실행속도가 상대적으로 느리다는 단점도 있습니다.

'Java' 카테고리의 다른 글

[Java] 멀티스레드와 동시성  (0) 2024.09.14
[Java] 자바의 Compiler  (1) 2024.09.08
[Java] Wrapper  (0) 2023.03.15
[Java] Optional  (0) 2023.03.15
[Java] 메모리 영역과 Garbage Collection  (0) 2023.03.14