아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
기민한진도개272
기민한진도개27219.02.01

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

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

예제)


1. Tv t;


2. t = new Tv();


이런 코드가 있습니다.


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

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

빈 공간에 생성이 됩니다.


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

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

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


옛 기억이라

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

55글자 더 채워주세요.
답변의 개수
1개의 답변이 있어요!
  • 네 맞습니다.

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

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

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

    만약

    t = null;

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