JVM은 자바 가상 머신으로서 자바 애플리케이션을 클래스 로더를 통해 읽어 들여 자바 API와 함께 실행하는 것으로
JAVA와 OS(운영체제) 사이에서 중개자 역할을 수행하여 운영체제에 구애받지 않고 독립적으로 작동이 가능하며
Garbage collecter를 통한 메모리 관리를 수행한다.
우선 JVM은 컴파일된 바이트 코드를 기계가 이해할 수 있는 기계어로 변환해주는데 나는 이것을 보고 번역기같다..? 라는 생각을 했다
또한 스택기반의 가상 머신으로 후입선출의 개념을 가진다.
JVM의 구조는 크게 4가지 (Class Loader, Runtime data areas, Execution Engine, GC)로 나누어져 있다.
각각의 역할은
Class Loader - 클래스 파일을 Runtime data area의 메서드 영역으로 불러온다.
Runtime Data Area - 자바 프로그램을 실행하는 동안 동적으로 메모리를 할당하고 사용되는 데이터와 정보를 저장한다.
Execution Engine - .class파일과 같은 바이트코드를 실행 가능하도록 해석한다.
GC(Garbage Collector) - Heap영역에 배치된 객체들을 관리하는 모듈이다.
'Java' 카테고리의 다른 글
JWT 정리 (0) | 2024.04.29 |
---|---|
스프링부트 JPA Repository (0) | 2024.04.18 |
Spring, Spring-Boot 차이점 (0) | 2024.04.08 |
MultipartFile 다중 파일 업로드 (0) | 2024.03.29 |
mvc1 , mvc2 차이점 (0) | 2024.03.17 |