* 프로그램에 메모리에 올라가게 되면 프로세스가 되는데 여기서 Data Segment와 Code Segment 로 나누어 지는데,
Heap 과 Stack 은 Date Segment를 이용
* Heap 은 런타임시 크기가 결정되는 요소들이 저장되는 공간
- C의 malloc()이나 C++ 의 new로 메모리 할당이 될 때에는 Heap 영역에 메모리가 잡힌다.
* Stack 은 컴파일시 크기가 결정되어 있는 요소들이 저장되는 공간
- 함수가 받는 매개 변수나 함수 내에서 사용되는 지역 변수가 Stack 영역에 저장
메모리를 가상으로 표현한 모습
Data 영역 전역 변수와 static 변수 저장 |
Heap 영역 동적할당 되는 데이터 자장(데이터가 위 부터 순차적으로 저장) |
Stack 영역 지역변수와 매개변수 저장(데이터가 아래부터 순차적으로 저장) |
1. 메모리가 어떻게 할당되는지..(스택과 힙의 관계)
- Objective 타입 변수
- primitive 타입 변수
2. 클래스가 로딩되는 시점은?
3. static 변수들은 어디에 값이 저장되는지.
4. 이상적인 GC 그래프
'Java' 카테고리의 다른 글
Hotspot JVM GC 방식 (0) | 2014.12.09 |
---|---|
[모델1] 간단한 로그인 시스템 (0) | 2014.11.01 |
Path 클래스 사용하기 (0) | 2014.10.01 |
singleton 패턴 (0) | 2014.10.01 |
Java Hashtable (0) | 2014.06.16 |