728x90
728x90
스택 메모리 (Stack memory)
- 함수가 호출될 때, 그 함수의 지역변수들에게 할당되는 메모리
- 함수의 수행이 끝나면 자동으로 반환됨
- 밑에서 위로 쌓아 올라가며 생기고, 위에서부터 사라짐
→ LIFO (Last Input First Output) : 가장 나중에 들어온 것이 가장 먼저 나감
힙 메모리 (Heap memory, 동적 메모리)
- 메모리 공간의 크기가 늘었다가 줄었다가 동적으로 변함
- 'new' 키워드를 통해 객체가 생성되면, 힙 메모리에 해당 객체와 멤버변수 값이 할당됨
- 하나의 클래스로부터 여러 개의 객체(인스턴스)가 생성되고, 각각 다른 메모리 주소를 가짐
→ 참조변수에 객체의 메모리 주소 값(참조 값)이 저장되며, 참조변수는 스택 메모리에 할당됨
→ 참조 값을 통해 객체에 접근
- 'Gabage Collector'가 사용하지 않는 메모리를 주기적으로 수거함
(↔ C 언어에서는 프로그래머가 직접 해제해서 메모리 관리)
320x100
반응형
'Java > Base' 카테고리의 다른 글
[Java] 객체와 클래스 3 : 생성자 (0) | 2023.02.06 |
---|---|
[Java] 객체와 클래스 2 : 메서드 (멤버 함수) (0) | 2023.02.06 |
[Java] 함수 (0) | 2023.02.04 |
[Java] 객체와 클래스 1 : 객체 지향 패러다임과 멤버 변수 (0) | 2023.02.03 |
[Java] 참조 자료형 (Scanner, Random) (0) | 2023.02.03 |