data/heap/stack/메모리 구조
프로그램에 실행 될 때마다 필요한 메모리 공간 (지역 변수, 전역 변수 공간)의 할당을 위해 메인 메모리 (RAM)에 할당된다. 이렇게 할당되는 메모리 공간은 데이터, 힙, 스택의 세 영역으로 나뉜다.
* data 영역
데이터 영역은 전역변수와 정적 변수(static 변수)가 할당되는 영역이다.
이 영역에 할당되는 변수들은 일반적으로 프로그램 시작과 동시에 할당되고 종료될 시 메모리에 소멸된다.
* Stack ( 스택 )
스택영역은 함수호출시 생성되는 지역변수와 매개변수가 저장되는 영역이다.
이 영역에 할당된 변수는 함수 호출이 완료되면 사라진다. ( 늦게할당 된 메모리가 먼저 out됨 )
* Heap
프로그래머애 의해 메모리 공간이 할당 및 소멸되는 공간으로 동적할당으로 생성되는 메모리 영역이다.
프로그램 내의 Test t = new Test(); 객체를 생성하는 작업시에 생성되는 데이터 영역으로 JVM 시작시에 생성된다.
* 자바 기준에서 보면....
객체가 사는 곳은 "힙", 메소드 호출/ 지역변수 등이 사는 곳은 "Stack"
'컴퓨터 공부 > JAVA' 카테고리의 다른 글
[JAVA] 정규식을 배워보자 (1) (2) | 2013.03.29 |
---|---|
[JAVA] arrayList와 linkedList 차이점 (2) | 2013.03.15 |
[JAVA] compareTo, equal, == 의 차이점 (5) | 2013.02.08 |
Vector-벡터 (0) | 2012.04.05 |
[JAVA] this와 this() ,super과 super의 차이점 (2) | 2012.03.26 |