Java와 JVM 기초 지도
Java 실행 모델, Memory, Thread, Collection을 세부 학습 주제로 연결한다.
이 문서의 목차
Overview
Java Application은 JVM 위에서 Class를 Loading하고 Heap·Stack 같은 Runtime Memory를 사용하며 여러 Thread를 Scheduling한다. 언어 문법보다 객체 수명, 동시성 보장, I/O 대기, Resource 종료를 연결해서 이해한다.
flowchart LR; SRC[Java Source] --> BC[Bytecode]; BC --> CL[Class Loading]; CL --> EX[Interpreter·JIT]; EX --> MEM[Heap·Stack·Metaspace]; EX --> TH[Threads·Synchronization]
학습 축
- 객체 Identity, Equality, Immutability와 Collection
- Exception 전파와 Resource 정리
- Class Loading, JIT, Heap, GC의 관계
- Thread 상태, Memory Visibility, Lock, Atomic 연산
- Executor와 Virtual Thread의 작업 실행 모델
실무에서 발생하는 문제
Thread 수만 늘려 처리량을 높이려 하거나, Heap 증가를 곧바로 GC 문제로 단정할 수 있다. Dump와 Profile은 객체·Thread가 왜 살아 있는지를 Stack과 Reference 경로로 확인하는 도구다.
Interview Questions
- JVM이 Bytecode를 실행하는 큰 흐름은?
- Heap과 Thread Stack의 역할은?
- 객체가 GC되지 않는다는 말의 정확한 의미는?
- Thread 수와 처리량이 비례하지 않는 이유는?
Related Topics
Thread 생명주기, Memory Visibility, Thread Pool을 함께 본다.
SOURCE REFERENCES
이 문서의 근거
본문은 Dev Atlas 안에서 완결되며, 검증이 필요할 때만 원문을 확인할 수 있습니다.