Skip to content

Latest commit

 

History

History
24 lines (19 loc) · 1.68 KB

File metadata and controls

24 lines (19 loc) · 1.68 KB

GC = 가비지 컬렉터

GC가 발생하는 영역은 오로지 힙 영역뿐 GC

클래스 로더 서브 시스템은 클래스나 인터페이스를 JVM으로 로딩하는 기능을 수행 실행 엔진은 로딩된 클래스의 메서드에 포함되어 있는 모든 인스트럭션 정보를 실행 자바의 메모리 영역은 'Heap 메모리'와 'Non-heap 메모리'로 나뉜다.

Heap 메모리 = 공유 메모리 = 여러 스데드에서 공유하는 데이터들이 저장되는 메모리 Non-heap 메모리 = 자바의 내부 처리를 위해서 필요한 영역 = 주된 영역이 바로 메서드 영역 메서드 영역 : 모든 JVM 스레드에서 공유 JVM 스택 : 스레드가 시작할 때 JVM 스택이 생성 네이티브 메서드 스택 : 자바 코드가 아닌 다른 언어로 된(보통은 C로 된) 코드들이 실행하게 될 때의 스택 정보를 관리 PC 레지스터 : 네이티브한 코드를 제외한 모든 자바 코드들이 수행될 때 JVM의 인스터럭션 주소를 pc 레지스터에 보관

GC의 역할들

  1. 메모리 할당
  2. 사용 중인 메모리 인식
  3. 사용하지 않는 메모리 인식

가비지 컬렉터는 사용하지 않는 메모리를 제거해준다 힙영역에서는 객체들을 담고 있고, 스택 및 메소드와 같은 영역에서는 해당 객체의 주소를 가지고 있다. 메서드가 끝나거나 여러가지 이벤트 들이 일어나 힙 영역 객체의 주소를 가지고 있는 참조 변수가 삭제되면, 더이상 필요없어진 객체들을 가비지 컬렉터가 주기적으로 제거해준다.