cleanUrl: /posts/basic-of-garbage-collector
share: true

NAVER D2

GC가 처음 나왔을때 언어 수준에서 의도적으로 수집기 작동을 제어하지 못하도록 했다는 점에서 여론이 좋지 않았다.

그러나 세월이 지나면서 GC가 사람의 손이 아닌 직접 메모리를 수집하는 것에 이견이 없어졌다.

모든 GC는 다음의 두 가지 원칙을 준수해야 한다

개발자가 저수준 세부를 신경쓰지 않고, 저수준 제어를 포기한다는 사상이 java 관리의 핵심이며 jame gosling 이 블루칼라 언어라고 말한 특징이 잘 반영되는 대목이다

이 챕터는

Introducing Mark and Sweep

GC 는 Mark and sweep 알고리즘이 기초이다.

실제 프로세스(GC 알고리즘 기본 개념, 이것이 memory를 어떻게 자동 회수하는지)가 어떻게 동작하는지 알아본다 여기서 설명하는 알고리즘은 매우 단순화 한 것이다 실제로 JVM 에서는 더 복잡하고 어렵다

object 가 할당은 되었지만, 아직 회수되지 않은 객체의 포인터를 포함하는 allocated list 를 사용한다