1. 자바 JVM 이란?
자바 JVM(Java Virtual Machine)은 자바 프로그램을 실행하기 위한 가상 머신이다.
JVM은 특정 플랫폼에 영향을 받지 않고, 자바 코드를 해당 플랫폼에서 실행할 수 있도록 해주는 역할을 한다.
JVM의 가장 큰 이점은 바이트 코드 (.class)로 윈도우, 리눅스, 맥과 같이 다양한 플랫폼에서도 동작을 할 수있다.
2. 자바 프로그램의 실행 과정과 JVM
1) 컴파일:
자바 클래스 코드(.java 파일)는 자바 컴파일러(javac)를 사용하여 바이트 코드로 변환한다.
컴파일러는 소스 코드를 읽고 문법적으로 검사한 뒤, 바이트 코드로 변환하여 .class 파일에 저장한다.
2) 로딩:
JVM은 자바 애플리케이션을 실행하기 위해 클래스 로더(Class Loader)를 통해 .class 파일들을 메모리에 로딩한다.
클래스 로더는 필요한 클래스들을 파일 시스템이나 네트워크 등에서 찾아서 JVM의 메모리에 로드한다.
3) 자바 Interpreter 와 JIT 컴파일러 :
둘 다 장단점이 있는 방식이지만, 자바는 인터프린터와 컴파일 방식을 모두 사용한다. 그래서 JIT 컴파일러 도입을 하여
한번 읽은 후 기계어로 변경한 소스코드는 번역하지 않게 한다.
인터프리터(Interpreter) :
인터프리터 모드에서는 JVM이 바이트 코드를 한 줄씩 읽어 해석하고, 해당하는 기계 코드로 변환하여 실행한다.
프로그램이 실행될 때마다 인터프리터가 바이트 코드를 해석하므로, 프로그램의 시작 속도는 빠르지만 실행 속도는 상대적으로 느리다. 이는 바이트 코드를 직접 해석하므로 매번 해석하고 실행하는 오버헤드가 발생하기 때문이다.
JIT 컴파일러(Just-In-Time Compiler) :
JIT 컴파일러 모드에서는 인터프리터가 바이트 코드를 중간 언어로 변환한 뒤, 그 중간 언어를 기계 코드로 컴파일하여 실행한다. 이러한 방식은 인터프리터의 반복적인 해석과정을 건너뛰고 바로 기계 코드로 변환하여 실행하기 때문에 인터프리터보다 빠른 실행 속도를 가진다.
4. JIT 컴파일러 동작 방식
위 이미지와 같이 저장소에 저장을 하는 개념을 가지고 있다. 반복되는 코드를 컴파일러로 컴파일 시킨다.
출처
https://steady-coding.tistory.com/305
JVM 메모리 구조란? (JAVA)
안녕하세요? 코딩 중독입니다. 오늘은 JVM 메모리 구조에 대해 알아보겠습니다. JVM이란? JVM 메모리 구조를 설명하기 전에 JVM이 무엇인지 알아야 합니다. JVM은 Java Virtual Machine의 약자로, 자바 가상
steady-coding.tistory.com
https://catch-me-java.tistory.com/11
[Java] 자바 가상머신 JVM(Java Virtual Machine) 총정리
JVM(Java Virtual Machine)이란? 자바 가상 머신 JVM(Java Virtual Machine)은 자바 프로그램 실행환경을 만들어 주는 소프트웨어입니다. 자바 코드를 컴파일하여 .class 바이트 코드로 만들면 이 코드가 자바 가
coding-factory.tistory.com
'자바' 카테고리의 다른 글
자바 JVM 내부 구조 및 메모리 구조 (0) | 2023.07.18 |
---|---|
자바 String builder, String buffer 차이 (0) | 2023.07.18 |
자바 Call by value, Call by reference, 기본 자료형, 참조 자료형 (0) | 2023.07.18 |
자바 중첩 클래스 ( Nested Class ) (0) | 2023.07.18 |
자바 final (0) | 2023.07.16 |