작성
·
183
답변 1
1
안녕하세요. RapaHello님
static 변수와 static 변수가 참조하고 있는 인스턴스를 분리해서 생각해야 합니다. 인스턴스는 힙 영역에 존재하지요.
지역 변수는 해당 메서드가 종료되는 시점에 함께 제거됩니다.
static 변수는 자바가 종료될 때 까지 계속 유지됩니다. 따라서 static 변수가 참조하고 있는 인스턴스는 GC의 대상이 되지 않습니다. 왜냐하면 static 변수가 계속 참조하고 있기 때문이지요.
다만 static 변수에 null을 대입하게 되면 static 변수가 참조하고 있던 인스턴스도 더는 참조하는 곳이 없기 때문에 GC의 대상이 될 수 있습니다. (물론 null 대신에 변수에 다른 참조값을 대입하는 경우에도 기존 인스턴스의 참조가 끊어지고 GC의 대상이 될 수 있습니다.)
감사합니다.
답변 감사합니다. 주신 답변을 바탕으로 더 공부해보겠습니다 ^^