[JVM 완전정복 #4] Garbage Collector 이해하기
·
자바
0. 들어가며지난 글에서 JVM의 Runtime Data Area(런타임 데이터 영역)에 대해 알아보았습니다.이번 글에서는 Java의 Heap영역에서 참조되지 않는 객체들의 메모리를 할당 해제하는 Garbage Collectoion에 대해 자세히 살펴보겠습니다.1.JVM 구성요소2. 자바 프로그램의 첫 관문 - 클래스 로더3.Runtime Data Area 완전분석: 메모리 구조와 각 영역 역할4. Execution Engine 완전정복: 인터프리터와 JIT의 비밀(예정) GC의 기본 작동 원리와 JVM에 탑재된 주요 GC(예: Minor GC, Major GC), 그리고 GC 과정에서 가장 중요한 개념인 Reachability와 Stop-the-World에 대해 다루겠습니다. 1. GC란?GC(Ga..
[JVM 완전정복 #3] Runtime Data Area 완전분석: 메모리 구조와 각 영역 역할
·
자바
0. 들어가며지난 글에서는 JVM의 클래스 로더(Class Loader)에 대해 알아보았습니다.이번 글에서는 JVM 내부에서 프로그램이 실제로 실행될 때 데이터를 어떻게 저장하고 관리하는지 즉 Runtime Data Area(런타임 데이터 영역)에 대해 자세히 살펴보겠습니다.Runtime Data Area는 JVM에서 자바 프로그램이 실행되는 동안 모든 데이터가 저장되고 CPU가 접근하는 핵심 메모리 공간입니다.이 영역을 이해하면 메모리 구조 성능 최적화 스레드 안전 문제 등을 더 깊이 이해할 수 있습니다.이번 글에서는 Runtime Data Area의 구성 요소와 각 역할 그리고 메모리 사용과 관련된 주의점까지 상세히 다루겠습니다.1. Runtime Data Area란?Runtime Data Area는..
[JVM 완전정복 #2] 자바 프로그램의 첫 관문 - 클래스로더
·
자바
0. 들어가며지난 글에서는 JVM의 전체 구성요소와 각 역할을 살펴보았습니다.이번 글에서는 그중 클래스 로더(Class Loader)에 집중해 자바 프로그램 실행 시 클래스가 JVM 내부로 어떻게 올라가고 관리되는지 상세히 알아보겠습니다.클래스 로더는 클래스(.class 파일)를 JVM 메모리에 불러오는 역할을 하는 프로그램 실행의 첫 관문이라고 할 수 있습니다. JVM을 공부하다 보면 클래스 로더가 왜 필요한지 그리고 클래스 정보를 메모리에 미리 적재(pre-loading)하는 이유가 자연스럽게 궁금해지는데요.이번 글에서는 클래스 로더가 수행하는 과정과 미리 적재하는 이유까지 상세히 다뤄보겠습니다.1. 클래스 로더(Class Loader)란?자바 프로그램이 실행되면 가장 먼저 클래스 로더가 동작합니..
[JVM 완전정복 #1] JVM 구성요소 총정리: 가상 머신이 자바 코드를 실행하는 비밀
·
자바
0. 들어가며자바는 “한 번만 컴파일하면 어디서나 실행된다(Write Once, Run Anywhere)”는 말로 유명합니다.그런데 이 말을 가능하게 만드는 주인공이 바로 JVM(Java Virtual Machine) 입니다.평소엔 그냥 지나쳤던 JVM이 어떻게 동작하는지 그리고 내부에서 어떤 구조로 자바 코드를 실행하는지 궁금해서 이번에 정리해봤습니다. JVM을 공부하다 보니 한 번에 다 다루기엔 내용이 너무 방대하더라고요.그래서 이번 글에서는 먼저 주요 구성요소와 역할을 중심으로 정리했습니다.더 상세한 내용은 아래 포스팅에서 자세히 다루었습니다.1. 자바 프로그램의 첫 관문 - 클래스 로더2.Runtime Data Area 완전분석: 메모리 구조와 각 영역 역할3. Garbage Collector 이..