Garbage Collector(GC)란?
- 프로그램이 동적으로 할당했던 메모리 영역 중에서 필요없게된 영역을 해제하는 기능
- Ex) new 라는 키워드가 힙 영역에서 동적으로 메모리를 할당해주는 역할을 하고, 그렇게 동적으로 할당된 메모리를 자동으로 해제해주는 것이 GC.💡Stack : 정적으로 할당한 메모리 영역, 원시 타입의 데이터가 값과 함께 할당, Heap영역에 생성된 Object 타입 데이터의 참조 값 할당💡Heap : 동적으로 할당한 메모리 영역으로, 모든 Object 타입의 데이터가 할당, Heap영역의 Object를 가리키는 참조 변수가 Stack에 할당
GC는 언제 동작하는가
- GC는 JVM에 올라가 있기 때문에 기본적으로 런타임시에 동작.
GC 과정
- Garbage Collector가 Stack의 모든 변수를 스캔하면서 각각 어떤 객체를 참조하고 있는지 찾아서 마킹한다.
- Reachable Object가 참조하고 있는 객체도 찾아서 마킹한다.(Mark)
- 마킹되지 않은 객체를 Heap에서 제거한다.(Sweep)
'JAVA' 카테고리의 다른 글
Java의 실행과정과 JVM (0) | 2021.09.18 |
---|---|
Optional<T> 는 무엇인가..? (0) | 2021.07.14 |
hasNext() 와 next() 메서드 (0) | 2021.04.29 |
JAVA - 향상된 for문 (0) | 2021.04.26 |
Uploaded by Notion2Tistory v1.1.0