JVM

uni.gy·2023년 5월 9일
0

CS

목록 보기
5/18

JVM

Java virtual machine 자바 프로그램 실행환경을 만들어 주는 소프트웨어이다. 자바 코드를 컴파일 하여 .class 바이트 코드로 만들면 이 코드가 자바 가상 머신 환경에서 실행된다.
* Java 자체는 운영체제에 의존적이지 않지만 JVM 자체는 운영체제에 의존적이다.(윈도우 JVM과 리눅스 JVM은 다르다)

JIT(Just In Time) 컴파일러

기존의 자바는 인터프리터 방식으로 명령어를 하나씩 실행하게끔 이루어져 있어 실행 속도가 느렸다. 하지만 JIT 컴파일러로 성능을 개선했다. JIT 컴파일러는 같은 코드를 매번 해석하지 않고, 실행할 때 컴파일을 하면서 해당 코드를 캐싱해버린다.

JDK, JRE

JDK(Java Development Kit): 자바 프로그램을 실행, 컴파일, 개발용 도구. JRE, javac, javadoc 등의 개발 도구 및 라이브러리들을 포함한다.
JRE(Java Runtime Environment): 자바로 만들어진 프로그램을 실행시키는데 필요한 라이브러리들과 각종 API, JVM이 포함되어 있다.

JVM 동작 방식


1. 자바 프로그램을 실행하면 JVM은 OS로부터 메모리를 할당받는다.
2. 자바 컴파일러(javac)가 자바 소스코드(.java)를 자바 바이트코드(.class)로 컴파일한다.
3. Class Loader는 동적 로딩을 통해 필요한 클래스들을 로딩 및 링크 하여 Runtime Data Area에 올린다.
4. Runtime Data Area에 로딩 된 바이트 코드는 Execution Engine을 통해 해석된다.
5. 이 과정에서 Execution Engine에 의해 Garbage Collector의 작동과 Thread 동기화가 이루어진다.

JVM 세부 구조 설명 자세히 되어 있는 블로그

profile
한결같이

0개의 댓글