참조_갈비지 컬렉션 GC ( Garbage Collection )
2024. 1. 13. 14:47ㆍJAVA
public static void main(String[] args) {
Data data = null;
System.out.println("1. null로 초기화된 data = " + data);
data = new Data();
System.out.println("2. 참조값을 할당한 data = " + data);
data = null;
System.out.println("3. null을 할당한 data = " + data);
}
이전 글의 예시 코드 이다.
다시 한 번 찬찬히 뜯어보자.
1. null 로 참조형 변수를 초기화 했다.
2. null로 초기화된 참조형 변수 data 에 주소값을 할당 했다.
3. 다시 주소값을 nul 로 대체하였다.
2~3 번의 과정에서 new Data (); 로 생성된 인스턴스는 주소값이 있음에도,
주소값을 아는 이가 없어 잊혀진 존재가 된다.
이렇게 잊혀진 인스턴스는 메모리만 잡아먹으면서 프로그램이 종료될 때까지 존재하게 되는데..
이런 객체들이 쌓이고 쌓이다 보면 메모리 부족으로 이어지리라.
이런 사태를 미연에 방지하기 위해 GC(Garbage Collection) 이 존재한다.
GC는 JVM 에 속해 있는 기술이다.
GC는 메모리 누수가 발생되지 않도록 한다.
아무도 참조하지 않는 인스턴스가 있다면 메모리에서 자동으로 제거 해준다.