본문 바로가기

JVM

(2)
[JVM-02] JAVA Garbage Collection (GC) GC 개요 Garbage Collection은 시스템에 있는 객체들의 수명을 정확히 몰라도 런타임이 대신 객체를 추적하며 쓸모없는 객체를 제거하는 것이다. GC는 Pluggable Subsystem으로 고려되며 JVM Spec 에도 객체용 힙 공간은 자동 저장소 관리 시스템으로 회수한다. 어떤 일이 있어도 객체를 명시적으로 해제해서는 안된다 라고만 적혀있다. 즉 같은 자바 프로그램 이라도 코드 변경 없이 다양한 GC에서 돌려 볼 수 있다. 모든 GC 구현체는 아래와 같은 두가지 기본 원칙을 준수해야한다. 알고리즘은 반드시 모든 가비지를 수집해야 한다. 살아 있는 객체는 절대로 수집해선 안된다. 또한 Weak Generational Hypothesis는 JVM 메모리 관리의 이론적 근간을 형성하였다. 대부..
[JVM-01] JVM Architecture 해당 내용은 Naver D2 Hello에 포스팅 된 JVM Internal과 자바 최적화를 기반으로 내용을 정리하였습니다. Table of Contents JVM Architecture 1. Class Loader 1.1 Loading 1.2 Linking 1.3 Initialization 2. Runtime Data Area 3. Execution Engine JVM Architecture (출처: https://dzone.com/articles/jvm-architecture-explained) JVM 특징 스택 기반의 가상 머신: JVM은 스택 기반으로 동작한다. 심볼릭 레퍼런스: Primitive data type을 제외한 모든 타입(클래스, 인터페이스)을 명시적인 메모리 주소 기반의 레퍼런스가 아..