본문 바로가기
자바

[JAVA] JDK, JRE, JVM, 컴파일

by 별보는 개발자 2022. 10. 18.

JDK, JRE, JVM에 대해서 정리해보겠습니다.

 

컴퓨터가 0과 1밖에 모른다는 것은 개발자라면 다 아는 내용입니다.

 

그렇기 때문에

public static void main(String[] args){
	System.out.println("Hello World!!!);
}

 

라고 코드를 작성을 해도 컴퓨터는 이 코드를 알아먹지 못합니다.

 

위 코드를 작성하고 실행버튼을 누르는 순간 작성한 코드가 이렇게 바뀌게 됩니다.

 

01101010101010000101...

 

컴퓨터는 이 바뀐 코드를 알아먹는 것입니다.

 

이렇게 사람이 작성한 코드를 컴퓨터가 알아먹는 코드로 변환하는 과정을 컴파일이라고 합니다.

 

컴파일 : 인간이 이해하기 쉬운 언어를 기계어로 번역하는 과정

 

바이트 코드(바이너리 코드) : 0과 1로 이루어진 코드, 컴파일 된 코드, 컴퓨터가 이해할 수 있음

 

컴파일러 : 컴파일을 해주는 주체, 프로그램

C언어에서는 OS마다 컴파일러가 필요합니다.

 

윈도우 C컴파일러, 맥 C컴파일러, 리눅스 C컴파일러..

 

컴파일러마다 다른 0과 1(바이트 코드)을 만들어내고 각각의 운영체제 한테 전달해서 출력을 합니다.

 

자바는 자바 컴파일러가 하나있고 그 컴파일러에서 생성된 0과 1의 바이트 코드가 있고

 

이 코드가 윈도우JVM, 맥JVM, 리눅스JVM으로 가서 각각의 운영체제에서 알아먹을 수 있게 변환을 해주는 것입니다.

 

JVM이라는 것이 0과 1 코드(바이트 코드)와 운영체제 사이에서 둘을 호환시켜주는 역할을 하는 것입니다.

 

JVM은 운영체제 마다 있고 JAVA를 설치하면 한 번에 같이 설치됩니다.

 

이렇게 JVM의 장점 때문에 JVM은 자바에서 뿐만 아니라  그루비, 스칼라, 코틀린에서도 많이 사용됩니다.

 

원래는 OS마다 다른 컴파일러가 필요하지만 JAVA는 JVM이 0과 1을 OS에 맞게 번역해줍니다.

 

똑같은 JAVA 바이트 코드를 OS마다 다르게 해석해주는 도구입니다.

 

JDK > JRE > JVM

JDK를 설치하면 자동으로 JRE, JVM도 설치됩니다.

 

JVM

 - 자바 가상 머신의 약자

 - Java Virtual Machine

 - OS 별로 존재한다

 - 바이너리 코드를 읽고 검증하고 실행한다.

 

JRE

 - 자바 실행 환경의 약자

 - Java Runtime Environment

 - JRE = JVM + 자바 프로그램 실행에 필요한 라이브러리 파일 등

 - JVM의 실행환경을 구현

 

JDK

 - 자바 개발 도구의 약자

 - Java Development Kit

 - JDK = JRE + 개발을 위한 도구

 - 컴파일러, 디버그 도구 등이 포함

 

JAVA의 버전 = JDK의 버전이 된다.

 

자바 LTS(Long Time Support) 버전 : 오래써도 되는 버전, 우리가 오래 지원함 (8, 11, 17버전)

 

JDK 종류

ORACLE JDK:  오라클에서 만든 JDK, 개인에게 무료, 기업용 유료

Open JDK : Oracle와 비슷한 성능 : 언제나 무료

 

JDK에는 버전이 있고 각 버전별로 새로운 기능이 추가되거나 기존 기능이 사라질 수 있습니다.

JDK에는 종류가 있고 기능 자체는 모두 동일하나 성능과 비용에 약간의 차이가 있을 수 있습니다.

'자바' 카테고리의 다른 글

[JAVA] 자바 멤버변수, 지역변수  (0) 2022.10.18