◎ 메모리 구조
▷ 코드 영역 : 메모리의 코드(code) 영역은 실행할 프로그램의 코드가 저장되는 영역으로 텍스트 영역이라고 합니다.
▶ CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리하게 됩니다.
▷ 데이터 영역 : 메모리의 데이터(data) 영역은 프로그램의 전역 변수와 정적(static) 변수가 저장되는 영역입니다.
▶ 데이터 영역은 프로그램 시작과 함께 할당되며, 프로그램이 종료되면 소멸합니다.
▷ 스택영역 : 메모리의 스택(stack) 영역은 함수의 호출과 관계되는 지역변수와 매개변수가 저장되는 영역입니다.
▶ 스택영역은 함수의 호출과 함께 할당되며, 함수의 호출이 완료되면 소멸합니다.
▶ 스택 영역은 푸시(push) 동작으로 데이터를 저장하고, 팝(pop) 동작으로 데이터를 인출합니다.
▶ 스택은 후입선출(LIFO, Last-In First-Out) 방식에 따라 동작하므로, 가장 늦게 저장된 데이터가 가장 먼저 인출됩니다.
반대(FIFO, First-In First-Out) 스택영역은 메모리의 높은 주소에서 낮은 주소의 방향으로 할당됩니다.
▷ 힙영역 : 메모리의 힙(heap) 영역은 사용자가 직접 관리할 수 있는 '그리고 해야만 하는' 메모리 영역입니다.
▶ 힙 영역은 사용자에 의해 메모리 공간이 동적으로 할당되고 해제됩니다.
▶ 힙 영역은 메모리의 낮은 주소에는 방향으로 할당됩니다.
제가 이해한 것으로는 스택영역에는 주소를 저장하고 힙영역에는 주소별 값들이 입력되어 있습니다.
따라서 힙 영역의 값들을 스택 영역으로 불러와 출력할 수 있게 만듭니다.
CS 공부를 좀 더 많이 해서 완벽하게 이해해야겠네요!!
많은 분들의 피드백은 언제나 환영합니다! 많은 댓글 부탁드려요~~
'BackEnd > Java' 카테고리의 다른 글
[java] 이것이 자바다 ch05 문자열 타입 (0) | 2023.01.09 |
---|---|
[java] 이것이 자바다 ch05 참조 타입 (0) | 2023.01.09 |
[java] 이것이 자바다 ch4 조건문과 반복문 (0) | 2023.01.07 |
[java] 이것이 자바다 ch2 변수 확인 문제 풀이 (0) | 2023.01.05 |
[java] 이것이 자바다 ch2 자동 타입 변환 및 변수 범위 (0) | 2023.01.05 |