아핫뉴스실시간 인기검색어
아핫뉴스 화산 이미지
화산 아이콘 11
비트코인 대폭락 경고
아하

생활

생활꿀팁

기민한진도개272
기민한진도개272

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

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

예제)


1. Tv t;


2. t = new Tv();


이런 코드가 있습니다.


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

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

빈 공간에 생성이 됩니다.


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

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

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


옛 기억이라

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

    1개의 답변이 있어요!
    • 붉은왜가리38
      붉은왜가리38

      네 맞습니다.

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

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

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

      만약

      t = null;

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