Stack
- 정적으로 할당된 메모리 영역이다.
- 원시 타입(primitive)의 데이터가 함께 할당된다.
- Heap 영역에 생성된 Object 타입의 데이터의 참조값이 할당된다.
- 각각의 Thread는 각각의 Stack 메모리를 갖는다
Heap
- 동적으로 할당된 메모리 영역이다.
- 모든 Objcet 타입의 데이터가 할당 된다.
- Heap 영역의 Object를 가리키는 참조변수가 Stack에 저장된다.
- 생명주기가 긴 데이터들이 주로 저장된다.
- 몇개의 Thread가 존재하든 상관없이 하나의 Heap영역만 존재한다.
public class Main {
public static void main(String[] args) {
int age = 29;
String name = "sebang";
}
}
Stack에 29라는 값이 age라는 변수명으로 할당된다.
String은 Object를 상속받았으므로 String은 Heap영역에 할당되고, Stack에 name이라고 생성된 변수는 Heap영역의 "sebang"이라는 스트링을 참조하게 된다.
'자바' 카테고리의 다른 글
[자바] static 메모리 (0) | 2023.01.20 |
---|---|
[자바] 기본형 매개변수와 참조형 매개변수 (객체지향) (0) | 2023.01.19 |
[자바] BufferedReader / StringTokenizer (0) | 2023.01.15 |
[자바] Comparable, Comparator (0) | 2023.01.13 |
[자바] CompareTo (0) | 2023.01.13 |