Laguage
[JAVA] JVM 구조
kkkkkkkkkkkk
2022. 2. 11. 16:53
학습 내용
- JVM 구조 이해
특징
- 하드웨어 및 운영체제 독립성
- 컴파일 된 코드의 작은 크기
- 보안
- 런타임에 다양한 메모리 영역 조작
클래스 로더
- 컴파일 된 바이트 코드를 읽어와 메모리 영역에 배치
- 영역 구분
- 로딩
- 클래스 파일을 읽음
- class, interface, enum, 메서드, 변수 를 메서드 ( Method ) 영역에 저장.
- 로딩이 끝난 후 해당 타입의 객체를 Class 객체로 생성하여 힙 ( Heap ) 영역에 저장.
- 클래스 파일을 읽음
- 링크
- 클래스나 인터페이스를 JVM 으로 연결 후 실행
- 초기화
- staic 값을 초기화 및 변수 할당
- 로딩
메모리
- 영역 구분
- Thread 에서 자원 공유
- 스택
- Thread 마다 Runtime Stack 을 만들고 Stack Frame 을 push 한다.
- Stack Trace
- Thread 마다 Runtime Stack 을 만들고 Stack Frame 을 push 한다.
- pc ( Program Counter )
- Stack 의 Method 들의 주소 값을 알려준다.
- Native Method Stack
- 다른 언어의 Method 을 Native Method Stack 에 push 한다.
- 힙 ( Heap ) 영역
- 객체, 인스턴스 저장
- 메서드 ( Method ) 영역
- 클래스 수준의 정보 저장
- 스택
- Thread 에서 자원 공유