자바 가상 머신 (JVM, Java Virtual Machine)

JVM은 2가지 기본 기능이 있습니다.
1.자바 프로그램이 어느 기기, 어느 운영체제 상에서도 실행될 수 있게 만들어 준다.
2.자바 프로그램의 메모리를 효율적으로 관리 & 최적화해 준다

과거의 모든 프로그램은 운영체제에 맞게 작성되었다.
같은 프로그램이지만 윈도우, 리눅스, 맥 등 사용하는 운영체제에 따라 다르게 작성되어야만 했다.
게다가 프로그램이 사용하는 메모리도 개발자가 일일이 관리해줘야만 했다.
JVM이 컴파일러로 변환된 자바 바이트 코드를 기계어로 번역해주는 역할을 해주고 메모리를 관리해준다.

자바 런타임 환경 (JRE, Java Runtime Environment)

JRE는 자바 클래스 라이브러리(Java class libraries), 자바 가상 머신(JVM) 자바 클래스 로더(Java class loader)를 포함하고 있다.
클래스 로더, 클래스 라이브러리를 통해 작성한 자바 코드를 라이브러리와 결합한 후 JVM에 넘겨 실행시킨다.
JRE는 그 자체로 특별한 기능을 한다기보다는 JVM이 원활하게 잘 작동할 수 있도록 환경을 맞춰주는 역할을 한다.

자바 개발 키트 (JDK, Java Development Kit)

우리가 일반적으로 자바를 공부하기 위해 설치하는 게 바로 이 JDK이다.
JDK를 설치하면 JRE가 자동으로 설치된다.
JDK는 JRE를 포함하고 있고, JRE는 JVM을 포함하고 있다.
따라서 JDK를 설치하면 JRE, JVM이 자동으로 다 설치됩니다.

자바로 개발을 하지 않는 일반 사용자들은 자바로 만든 프로그램을 실행만 하면 되기 때문에 JRE만 설치해도 된다.
그러나 자바로 뭔가를 만들어보고 싶은 사람은 JDK를 설치해야 한다.

JDK에는 JRE에는 없는 "자바 컴파일러(javac, java compiler)"를 포함하고 있다.
컴파일러란 우리가 작성한 자바 문법을 컴퓨터가 이해할 수 있게 바꿔주는 해석기 같은 존재이다.
실제로 .java 파일을 만들어서 실행(빌드)하면 컴파일 작업을 거쳐 .class 라는 파일이 자동으로 생성된다.

대충은 이해하고 있었는데 자세한 내용을 모르고 있었다.

'개념정리' 카테고리의 다른 글

사설 ip 와 공인 ip  (0) 2023.09.02
필기시험준비4  (0) 2023.08.27
필기시험준비3  (1) 2023.08.26
필기시험준비2  (0) 2023.08.25
필기 시험 준비..  (0) 2023.08.24

+ Recent posts