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
      • pc ( Program Counter )
        • Stack 의 Method 들의 주소 값을 알려준다.
      • Native Method Stack
        • 다른 언어의 Method 을 Native Method Stack 에 push 한다.
      • 힙 ( Heap ) 영역
        • 객체, 인스턴스 저장
      • 메서드 ( Method ) 영역
        • 클래스 수준의 정보 저장