Stack
- Heap 영역에 생성된 Object 타입의 데이터의 참조값이 할당됨
- 원시타입의 데이터가 값과 할당됨
- 지역변수들은 scope에 따ㅏ른 visibility를 가짐
- 각 Thread는 자신만의 stack을 가짐
Heap
- Heap영역에는 주로 긴 생명주기를 가지는 데이터들이 저장됨. (대부분의 오브젝트는 크기가 크고, 서로 다른 코드블럭에서 공유되는 경우가 많음)
- 애플리케이션의 모든 메모리 중 stack에 있는 데이터를 제외한 부분이라고 보면 됨.
- 모든 Object 타입(Integer, String, ArrayList, …)은 heap영역에 생성됨
- 몇개의 스레드가 존재하든 상관없이 단 하나의 heap 영역만 존재
- Heap 영역에 있는 오브젝트들을 가리키는 레퍼런스 변수가 stack에 올라가게 됨.
출처 : https://yaboong.github.io/java/2018/05/26/java-memory-management/
'Dev > JAVA' 카테고리의 다른 글
Marshal & Unmarshal (1) | 2021.09.28 |
---|---|
OOP (2) | 2021.09.28 |
JAVA 8, 9, 10 (0) | 2021.09.28 |
lombok (0) | 2021.09.27 |
extends / implements (inheritance) (0) | 2021.09.24 |