자바 기본 지식 정리 - 가비지 컬렉션의 장점과 원리 JAVA의 객체는 힙에 할당되는데, 힙에 저장 공간을 할당하는 방식이 비용이 많이 드는 이유는 바로 GC 때문입니다. Java 힙의 공간 할당 속도는 다른 언어의 스택 할당 속도와 비슷합니다. Java 개체에는 더 이상 범위 개념이 없습니다. level 스레드가 실행되고, 메모리 힙에 있는 개체 중 수명이 다했거나 오랫동안 사용하지 않은 개체는 예측할 수 없는 상황에서 지워지고 재활용됩니다. 프로그래머는 특정 개체 또는 모든 개체를 가비지 수집하기 위해 실시간으로 가비지 수집기를 호출할 수 없습니다. 프로그램은 System.gc() 또는 Runtime.getRuntime().gc()를 사용하여 가비지 수집을 요청할 수 있지만 가비지 수집이 즉시 수행된다는 것을 보장하지는 않습니다. GC 작동 방식: 참조 카운팅, 표시된 복사본 "참조 카운팅"은 간단하지만 매우 빠른 느린 가비지 수집 기술입니다. 모든 객체에는 참조 카운터가 있습니다. 참조가 연결되면 카운터가 1씩 증가합니다. 참조가 범위를 벗어나거나 NULL에 배치되면 카운터는 -1입니다. 수집기는 개체 참조를 포함하는 모든 개체를 수집합니다. 목록을 탐색하고 개체의 참조 횟수가 0인 것으로 확인되면 점유된 공간이 해제됩니다. "표시된 복사본"의 작동 메커니즘인 가비지 수집기는 포함된 목록을 탐색합니다. 모든 참조를 탐색하고 남아 있는 개체 참조가 발견되면 다음을 수행합니다. 모든 개체 참조를 탐색하고 표시할 때 가비지 수집이 수행되고 표시되지 않은 개체의 힙 공간이 해제됩니다. Java의 장점 가비지 수집 메커니즘을 통해 프로그래머는 메모리 공간 할당에 대해 걱정할 필요가 없으며 동시에 메모리 오버플로도 줄어듭니다.