-
JVM JRE JDK 역할 및 차이 + Java Program 동작 원리IT Common Sense 2021. 6. 1. 23:48반응형
JVM(Java Virtual Machine)
.java 로 생성된 소스코드를 컴파일하여 생성된 .class 인 바이트코드를
각각의 OS(리눅스, 윈도우, 맥) 에 맞는 코드로 변환하여 실행시킬 수 있게 해주는 도구
이때
인터프리터로 코드의 명령어를 기계어로 변환하고
JIT 를 이용해 속도를 빠르게하고
Garbage Collection 을 통해 메모리를 효율적으로 관리함
즉, 바이트 코드 를 OS 에 맞게 변환하여 실행
인터프리터 (Interpreter)
코드의 명령어를 하나씩 기계어로 변환
JIT (Just In Time)
실행시 자주 사용하는 코드를 기계어로 변환하여 저장한 뒤 재사용하여
느린 인터프리터의 속도를 빠르게 함
Garbage Collector
heap 영역(객체와 배열 저장)에 생성된 객체들 중 참조되지 않은 객체들을 메모리에서 제거
JRE(Java Runtime Environment)
JVM 이 JAVA 를 동작시킬 때 필요한 라이브러리 파일들을 갖고 있어 실행 할 수 있게 환경을 제공하는 설치 환경 도구
즉, JRE = JVM + 환경 라이브러리
JDK(Java Development Kit)
java 실행 파일 + 자바 설치 환경 에 개발에 필요한 도구들을 갖춘 패키지
즉, JDK = JRE + 개발 툴(ex. javac)
JAVA
단순한 언어 => jdk 속 자바 컴파일러인 javac를 사용하여 .class 인 바이트코드로 사용가능함
따라서 JAVA 언어를 이용하여 개발 하려면 JDK 가 필요하다.
Java Program 동작 원리
JAVA (.java)파일을
JDK 속 자바컴파일러인 javac 로 컴파일 하여 자바 바이트코드(.class)로 변환하고
JRE 에서 구축된 실행 환경을 바탕으로
JVM 속에서 OS 에 맞게 변환하여 실행한다.
반응형'IT Common Sense' 카테고리의 다른 글
자바(JAVA) 컴파일러 인터프리터 동작 이해 (0) 2021.06.10 컴파일 vs 컴파일러 vs 인터프리터 (0) 2021.06.10 vscode 파일 찾기 단축키 (0) 2021.06.01 컴퓨터에서 마이크 안될 때 키는 법 (0) 2021.05.05 인텔리제이(Intellij) / 웹스톰(Webstorm) 브라우저 팝업 제거 하는 법 (0) 2021.05.05