728x90
JVM
JVM은 자바 가상머신(Java Virtual Machine)의 약자이다.
JVM은 자바 소스코드로부터 만들어지는 자바 바이너리 파일(.class)을 실행할 수 있다. 또한 JVM은 플랫폼에 의존적이다. 즉 리눅스의 JVM과 윈도우즈의 JVM은 다르다. 단, 컴파일된 바이너리 코드는 어떤 JVM에서도 동작시킬 수 있다.
자바 바이트 코드(.class 파일)를 OS에 특화된 코드로 변환해 주는 자바 가상 머신
- 특정 플랫폼에 종속적이다.
- JVM 밴더 : Oracle, Amazon, Azul 등
JVM은 다음과 같은 역할을 한다.
- 바이너리 코드를 읽는다.
- 바이너리 코드를 검증한다.
- 바이너리 코드를 실행한다.
- 실행환경(Runtime Environment)의 규격을 제공한다. (필요한 라이브러리 및 기타파일)
JRE
JRE는 자바 실행환경(Java Runtime Environment)의 약자이다.
JRE는 JVM 이 자바 프로그램을 동작시킬 때 필요한 라이브러리 파일들과 기타 파일들을 가지고 있다. JRE는 JVM의 실행환경을 구현했다고 할 수 있다.
JRE(Java Runtime Environment) : JVM + library
자바 애플리케이션을 실행하기 위한 것
개발 관련 도구(javac 등)를 포함하지 않음
JDK
JDK는 자바 개발도구(Java Development Kit)의 약자이다.
JDK는 JRE + 개발을 위해 필요한 도구(javac, java등)들을 포함한다.
java 환경에서 돌아가는 프로그램을 개발하는 데 필요한 틀들은 모아놓은 소프트웨어 패키지
- 오라클은 자바 11부터 JDK만 제공
'Language > Java' 카테고리의 다른 글
[Java] 예외처리 (Exception) (0) | 2022.08.04 |
---|---|
[Java] public 클래스 (0) | 2022.08.04 |
[Java] 정적(static) 변수와 메소드 (0) | 2022.08.04 |
[Java] 접근제어자 (Access Modifier) (0) | 2022.08.04 |
[Java] 패키지 (Package) (0) | 2022.08.04 |