자바 자료구조(stack,heap)관련 기초 질문입니다

2019. 02. 01. 11:48

인스턴스가 생성될 때, 메모리의 어디에(stack, heap) 생성이 되는 건지 궁금해요

예제)


1. Tv t;


2. t = new Tv();


이런 코드가 있습니다.


1.줄에 참조변수 t를 선언했고,

2.줄에 연산자 new에 의해 Tv클래스의 인스턴스가 메모리의

빈 공간에 생성이 됩니다.


참조변수에는 주소가 들어가있다고 하는데(책에서)

그러면 참조변수는 메모리상 스택에 있고,

생성된 인스턴스는 heap에 값들이 저장이 되는게 맞나요?..


옛 기억이라

확실히 하고자 질문하게 되었습니다

공유하고 돈벌기 ♥︎

총 1개의 답변이 있습니다.

질문자 채택 답변
개발팀

네 맞습니다.

참조변수는 스택 메모리상에 들어가게 되고

객체를 생성하게 되면 해당 생성된 객체는 힙 메모리에 올라가게 됩니다.

참조변수에는 생성된 객체가 들어가 있는 메모리 주소를 가르키는 값이 저장되어 있습니다.

만약

t = null;

이렇게 선언하게 되면 힙메모리에 있는 객체는 더 이상 참조하는 대상이 없기때문에 자바의 GC(가비지 콜렉션) 대상이 되어 힙메모리에서 삭제가 됩니다.

2019. 02. 01. 13:51
44