JVM 구조, 메모리와 코드의 흐름
👉 JVM 이해하기
1. 코드가 실행되는 과정
2. JDK 구조
* JRE (자바에서 제공되는 기본 라이브러리들이 포함)
👉 메모리와 실행 엔진
1. JVM이 사용하는 메모리 영역
* JDK 구조
* JVM 구조
# 클래스 로더 서브시스템 : .class 에서 바이트코드를 읽고 메모리에 저장.
# 메모리
- 메소드 영역(Method Area).
- 힙 영역에는 객체를 저장.
- 스택 영역에는 스레드마다 런타임 스택을 만들고, 스택 프레임이라 부르는 블록을 쌓는다.
# 실행엔진
- JIT 컴파일러가 반복되는 코드를 재사용해서 속도를 높인다.
- GC : 더이상 참조되지 않는 객체를 모아서 정리.
# JNI(Java Native Interface)
- C, C++, 어셈블리로 작성된 함수를 사용할 수 있는 방법 제공.
- 자바에서 기본으로 제공되는 메서드에 native 키워드를 가 붙은 친구.
# 네이티브 메소드 라이브러리.
- C, C++로 작성된 라이브러리.
2. 클래스 로더와 static 영역
# Loading
- 클래스 로더가 .class 파일을 읽고 데이터를 “Method Area”영역에 저장
# Linking
- https://dzone.com/articles/jvm-architecture-explained
# Initialization
- “Static“ 붙은 친구들 초기화. static 블럭 실행.
3. 메모리 영역
'❤️🔥TIL (Today I Learned)' 카테고리의 다른 글
[TIL] 2022-12-02(25day) (0) | 2022.12.02 |
---|---|
[TIL] 2022-12-01(24day) (0) | 2022.12.01 |
[TIL] 2022-11-29(22day) (0) | 2022.11.29 |
[TIL] 2022-11-28(21day) (0) | 2022.11.28 |
[TIL] 2022-11-25(20day) (0) | 2022.11.27 |
댓글