GC(Garbage Collector)란? - JVM의 Heap 영역에서 사용하지 않는 객체를 삭제하는 프로세스 GC의 수거 대상 - 어떤 객체의 유효한 참조가 존재한다면 Reachable, 그렇지 않다면 Unreachable이라고 한다. GC의 동작 순서 - Mark and Sweep 알고리즘을 따른다. - Mark는 Reachable 객체와 Unreachable 객체를 식별하여 마킹한다. - Sweep은 Unreachable한 객체들을 Heap에서 제거한다. - GC 알고리즘에 따라 Compact 과정이 추가되기도 한다. Compact는 Sweep 후에 분산된 객체들을 한 곳으로 모아서 메모리 단편화를 막아준다. GC는 언제 일어날까 - Heap의 구조는 Young Generation, Old Gen..
Java Virtual Machine이란? - Java로 개발한 프로그램을 컴파일하여 만들어지는 바이트코드를 실행시키기 위한 가상머신. - JRE(Java Runtime Environment)에 포함되어 있다. - Class Loader, Runtime Data Area, Execution Engine, JNI, Native Method Library으로 이루어져 있다. Class Loader - .class 파일을 JVM의 Runtime Data Area에 배치한다. Runtime Data Area - Method 영역, Heap 영역은 모든 쓰레드가 공유하는 영역. - Stacks, PC registers, Native Method Stacks은 쓰레드 마다 하나씩 생성되는 공간. - Method 영..