Language/Java(3)
-
Java의 메모리 구조와 GC 완전 정복
1. Java 프로그램 실행 과정 다시 짚고 가기 .java -> 컴파일 -> .class (바이트코드 생성) JVM이 Class Loader로 로딩 메모리 영역(Runtime Data Area)에 적재 실행 엔진(Execution Engine)이 해석 & 실행실행 중 발생하는 객체/변수 등이 JVM 메모리 영역에 저장됨즉, 우리가 작성한 모든 Java 코드는 결국 JVM 메모리 공간을 점유하게 되며, 메모리 구조의 이해 = 성능과 안전성 이해의 첫걸음2. JVM의 메모리 영역 정리 (Java 8 기준) 📌 JVM Runtime Data Area 구성 영역설명생성 시점스레드 공유 여부Heap객체 인스턴스 저장, GC의 대상클래스 로딩 시 ✅ 공유Method Area (-> MetaSpace)클래스 정보..
2025.04.14 -
☕ JVM 구조와 동작 원리 - Java 개발자라면 반드시 이해하고 있어야 할 기본기
1. JVM이란?: JVM(Java Virtual Machine)은 자바 애플리케이션을 실행시키는 가상 머신(Virtual Machine)이다. 자바 소스코드(.java) -> 컴파일 -> 바이트코드(.class) -> jvm이 실행 JVM은 운영체제 위에서 작동하며 플랫폼 독립성을 제공한다."Write Once, Run Anywhere"가 가능한 이유2. JVM의 구성 요소Class Loader (클래스 로더 시스템).class 파일을 JVM 메모리로 로드하고, 링크 및 초기화 진행Bootstrap -> Extension -> Application 로더 계층 구조Runtime Data AreaJVM 내부에서 실행되는 데이터 저장 공간아래에서 자세히 다룸(Heap, Stack 등)Execution Eng..
2025.04.14 -
어떤 버전의 JDK를 사용해야 할까?
이번 글에서는 다양한 JDK 중에서 어떤 JDK를 사용하는 것이 좋은지에 대해서 다루는 글을 작성해보려고 한다. Java 애플리케이션을 구축하고 실행하려면 Java 플랫폼, Standard Edition("Java SE") 사양을 구현하는 Java 컴파일러, Java 런타임 라이브러리 및 가상 머신(JVM)이 필요하다. OpenJDK는 Java SE 사양의 오픈 소스 참조 구현이지만 소스 코드일 뿐이다. 바이너리 배포판은 지원되는 다양한 플랫폼에 대해 다양한 공급업체에서 제공된다. 이러한 배포판은 라이센스, 상용 지원, 지원 플랫폼 및 업데이트 빈도가 다르다. Releases 현재의 JDK Releases Model에서는 6개월마다(3월과 9월) 새로운 메이저 버전 번호가 포함된 새로운 Feature 릴..
2024.03.23