책에서 본 내용인데..
자꾸 까먹는다. 기본적인 내용만 들어있어서 어렵지 않은 내용인데..
왜 자꾸 까먹지 -_-;
자바를 쓸 때 우리가 관심을 가져야 할 두가지 메모리 공간을 다루는데.. 힙과 스택이 있다.
하나는 객체가 존재하는 곳이고 (힙)
하나는 메소드 호출과 지역변수가 있는 곳 (스택)이다..
인스턴스 변수는 객체 안에 존재하지만 (물론 레퍼런스만 가지고 있다..)
메서드안에서 선언한 지역 변수는 (매개 변수 포함) 메소드가 스택에
있는 동안만 존재한다.
메소드를 호출하면 그 메소드는 호출 스택에 차례대로 쌓이는데
거기에 지역 변수를 포함한 메소드의 상태가 들어있다.
만약 선언된 지역변수가 객체 레퍼런스 변수라면
스택에는 변수(레퍼런스를 참조하고 있는)만 존재하고
실제 그 변수가 참조하고 있는 객체는 힙에 존재하게 된다..
아무튼 모든 객체는 힙에 저장된다.
자꾸 까먹는다. 기본적인 내용만 들어있어서 어렵지 않은 내용인데..
왜 자꾸 까먹지 -_-;
자바를 쓸 때 우리가 관심을 가져야 할 두가지 메모리 공간을 다루는데.. 힙과 스택이 있다.
하나는 객체가 존재하는 곳이고 (힙)
하나는 메소드 호출과 지역변수가 있는 곳 (스택)이다..
인스턴스 변수는 객체 안에 존재하지만 (물론 레퍼런스만 가지고 있다..)
메서드안에서 선언한 지역 변수는 (매개 변수 포함) 메소드가 스택에
있는 동안만 존재한다.
메소드를 호출하면 그 메소드는 호출 스택에 차례대로 쌓이는데
거기에 지역 변수를 포함한 메소드의 상태가 들어있다.
만약 선언된 지역변수가 객체 레퍼런스 변수라면
스택에는 변수(레퍼런스를 참조하고 있는)만 존재하고
실제 그 변수가 참조하고 있는 객체는 힙에 존재하게 된다..
아무튼 모든 객체는 힙에 저장된다.