본문 바로가기
프로그래밍/Java

스택과 힙 ( + 가비지 컬렉션 )

by choi_9182 2019. 9. 18.
자바를 쓸 때 두 가지 메모리 공간을 다룬다.

#힙 - 객체가 사는곳

크기가 정해져 있지 않음.

객체, 배열, 인터페이스 등의 크기가 정해져있지 않은 값들을 주소형식으로 메모리에 저장.

참조하는 변수가 없다면 자동으로 힙 영역에서 제거된다.

몇 개의 스레드가 존재하던 단 1개의 heap 영역만 존재한다.

 

#스택 - 메소드 호출과 지역변수가 살아가는 곳

기본형 변수처럼 크기가 정해지는 실제값을 저장한다.

메소드 작업이 종료되면 메모리 공간이 비워지며 반환된다.

스레드마다 stack이 존재한다.

 

 

#가비지 컬렉션

힙 영역의 올려진 데이터가 있는데, 스택 영역에서 해당 힙 영역의 참조주소를 잃어버리면

힙 영역의 올려진 데이터는 쓰레기 값이 되어 가바지 컬렉션이 정리해버린다.

 

 

댓글