본문 바로가기

JAVA

JDK / JRE / JVM

자바는 어떤 운영체제에서도 동일한 형태로 실행시킬 수 있는 특징이 있다.

이를 가능하게 해주는 것은 다름 아닌 JVM이다. 어떻게 해주는데?

자바 컴파일러는 코드가 실행되면 .java 파일을 .class 파일로 변환해주는 과정을 거치는데

.class 파일은 운영체제가 알지 못한다. 이때, JVM이 운영체제에 상관없이 동작할 수 있게 해준다.

 

Java의 동작 원리

사람이 이해할 수 있게 만들어진 컴퓨터 언어 "java"로 소스코드를 입력한다. (.java) 컴파일하면 이클립스가 컴퓨터가 이해할 수 있는 언어로 변환한다. (.class) 실행을 누르면 이클립스가 컴퓨터에 설치된 java virtual machine으로 사인을 보낸다. 사인을 받은 java virtual machine은 컴퓨터에 사인을 보낸다. 프로그램이 실행된다!

 

JDK > JRE > JVM

 

 

JRE(Java Runtime Environment)

JVM + 시스템 라이브러리

자바 언어로 된 프로그램을 실행할 때 필요

만약, 내가 개발하는게 아니라 자바로 개발된 프로그램만 사용하는 것이라면 JRE만 컴퓨터에 설치하면 됨

 

 

JDK(Java Development Kit)

JRE(JVM + 시스템 라이브러리) + 컴파일러/디버거와 같은 개발 도구

자바 언어로 개발을 할 때 필요

 

 

자바 가상 머신 (Java Virtual Machine)

자바 프로그램 범주에 들어가는 모든 걸 실행시켜주는 주체

자바 컴파일러는 코드가 실행되면 .java 파일을 .class 파일로 변환하는데 .class 파일은 OS가 모름!

이때 JVM이 java가 OS에 상관없이 동작할 수 있도록 해줌

운영체제에 독립적으로 작동하기 위해 필요

 

 

* 가비지 컬렉션 (GC)

자바 프로그램 상에서 사용하지 않은 메모리를 지속적으로 찾아 제거함으로써 효율적인 메모리 관리