본문 바로가기

Programming Practice/Java

memory

static vs. stack vs. heap

 메모리 영역

이용 주체 

메모리 반환 방식

 static

static 이 붙은 instance variables, method

* 모든 objects에서 사용할 수 있음 (class명.변수, class명.method)

java program 종료 시 

 stack

method invocations, local variables 

method 가 실행완료되면, method 의 stack frame이 stack에서 사라진다.

 heap

objects, instance variables

reference 변수의 메모리가 반환되면, Garbage Collector 가 object를 heap에서 정리함


cf. 변수 비교

 변수

설명 

 instance variables

class 내 선언되어 있으나, method 내에는 있지 않는 변수 

 local variables

method 내에 선언되어 있는 변수 (method parameter 까지 포함) 


cf. object 생성 방식

1) reference 변수 선언

Dog myDog = new Dog();

2) object 생성

Dog myDog = new Dog();

3) reference 변수와 object 연결

Dog myDog = new Dog();