일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 프로그래머스
- python3
- 격리수준
- 알고리즘 종류 정리
- LeetCode
- DP
- 프로콘 갈림현상
- 알고리즘
- 코딩테스트
- 제노블레이드 2
- 자소서
- algorithm
- 백트래킹
- SRE
- GitHub Desktop
- ASF-110
- Algorithmus
- C++
- 프로콘
- Ultimate Search
- baekjoon
- Pro-Con
- 네이버 검색 시스템
- 백준
- Python
- 취준
- programmers
- 리트코드
- git
- Github
- Today
- Total
산타는 없다
JVM, JRE, JDK 정리 본문
자바 용어 중 JVM, JRE, JDK에 정리해 보려고 합니다.
JVM (자바 가상 머신 / Java Virtual Machine)
자바 소스 코드(.java)는 자바 컴파일러(javac)에 의해 자바 바이트 코드(.class) 변환됩니다.
변환된 바이트 코드는 기계어가 아니기 때문에 바로 실행시킬 수 없고 JVM을 통해서 실행하게 됩니다.
이때 JVM은 플랫폼에 맞게 자바 바이트코드를 실행할 수 있도록 동작합니다.
즉, 자바 바이트 코드를 실행할 수 있도록 각각의 운영체제마다 JVM이 있어 어떤한 운영체제(Windows, Mac, Linux)에서든 동일한 자바 소스 코드를 실행할 수 있습니다. 이런한 자바의 특징을 WORA(Write Once Run Anywhere)라고 합니다.
또한 JVM에는 Garbage Collection이 있어 메모리를 관리해 주는 역활도 합니다.
JRE (자바 실행 환경 / Java Runtime Environment)
JRE는 JVM, 자바 클래스 라이브러리 (Java Class Libraries), 자바 클래스 로더(Java Class Loader)를 포함하고 있습니다.자바 클래스 라이브러리는 자바 프로그램 동작 시 필요한 라이프러리 파일들이며, 자바 클래스 로더는 JVM으로 클래스 파일(.Class / 자바 바이트코드)을 로딩합니다.또한 자바 프로그램 동작시킬 때 필요한 기타들도 가지고 있습니다.이렇게 구성된 JRE는 JVM의 실행환경을 구현했다고 할 수 있습니다.
JDK (자바 개발 도구 / Java Development Kit)
JRE + 개발에 필요한 도구(javac, java 등)들을 포함하고 있습니다.
때문에 JDK를 설치하면 JRE(JVM과 실행에 필요한 라이브러리, 기타파일) + 자바 컴파일러가 설치되어 자바를 사용하여 프로그램을 개발할 수 있습니다.
JRE와 JDK의 차이점을 나누자면
JRE만 설치했을 때는 클래스 파일을 JVM에 로딩시켜 실행할 수는 있지만 자바로 프로그램을 개발할 수 없다. 왜냐하면 자바 컴파일러가 없기 때문이다
하지만 JDK를 설치하면 자바 컴파일러도 같이 설치하기 때문에 자바로 프로그램을 개발하고 실행할 수 있는 것이다.