자바 자료구조(stack,heap)관련 기초 질문입니다
인스턴스가 생성될 때, 메모리의 어디에(stack, heap) 생성이 되는 건지 궁금해요
예제)
1. Tv t;
2. t = new Tv();
이런 코드가 있습니다.
1.줄에 참조변수 t를 선언했고,
2.줄에 연산자 new에 의해 Tv클래스의 인스턴스가 메모리의
빈 공간에 생성이 됩니다.
참조변수에는 주소가 들어가있다고 하는데(책에서)
그러면 참조변수는 메모리상 스택에 있고,
생성된 인스턴스는 heap에 값들이 저장이 되는게 맞나요?..
옛 기억이라
확실히 하고자 질문하게 되었습니다
55글자 더 채워주세요.
1개의 답변이 있어요!
네 맞습니다.
참조변수는 스택 메모리상에 들어가게 되고
객체를 생성하게 되면 해당 생성된 객체는 힙 메모리에 올라가게 됩니다.
참조변수에는 생성된 객체가 들어가 있는 메모리 주소를 가르키는 값이 저장되어 있습니다.
만약
t = null;
이렇게 선언하게 되면 힙메모리에 있는 객체는 더 이상 참조하는 대상이 없기때문에 자바의 GC(가비지 콜렉션) 대상이 되어 힙메모리에서 삭제가 됩니다.