자바에서 인스턴스를 null로 초기화시키면 기존에 존재하던 인스턴스의 경우는 JVM에 의해 메모리 해제되고,
새로 선언하는경우 어떠한 인스턴스 변수의 메모리 할당도 일어나지 않는다고 알고있는데,
그러면 null로 초기화된 인스턴스가 차지하는 메모리 영역의 총합은 0 인가요?
즉, null로 초기화된 인스턴스도 힙에 올라가긴 하나요? 의미없는 명령인것 같은데...
새로 선언하는경우 어떠한 인스턴스 변수의 메모리 할당도 일어나지 않는다고 알고있는데,
그러면 null로 초기화된 인스턴스가 차지하는 메모리 영역의 총합은 0 인가요?
즉, null로 초기화된 인스턴스도 힙에 올라가긴 하나요? 의미없는 명령인것 같은데...
변수는 힙 어딘가에서 떠도는 인스턴스를 \"가리킬\" 뿐이지, C++에서처럼 변수 그 자체가 인스턴스가 아닙니다.
null로 초기화된 변수의 의미는 단지 \"아무 인스턴스도 가리키지 않는 변수\"입니다. 인스턴스가 존재할 필요가 없지요.
마찬가지로 변수 != 인스턴스이기 때문에, 어떤 인스턴스를 가리키고 있던 변수를 null로 설정한다고 해도 단지 그 변수가 어떤 인스턴스를 가리키고 있었는지 잊어버릴 뿐, 그 인스턴스가 직접적으로 사라지는 게 아닙니다. GC가 파악해서 소멸시키기 전까지 얼마간은 메모리에 존재할 수 있단 뜻이죠.
참조변수와 인스턴스의 관계를 헷갈렸네요..^^ 감사합니다
그렇담 null초기화의 의미는 \"참조변수의 메모리 할당만 일어나고, 할당된 참조변수가 인스턴스를 가리키지 않는 상황\"이라는 말씀이시군요
ㅇㅇ
인스턴스가 초기화된게 아니라 변수가 null로 초기화된 거겠지. 더 이상 의미없는 인스턴스는 GC가 제거하는 것일테고