반응형
메모리
메모리의 구조
프로그램이 실행되기 위해서는 먼저 프로그램이 메모리에 로드(load) 되어야 합니다.
또한, 프로그램에서 사용되는 변수들을 저장할 메모리도 필요합니다.
따라서 컴퓨터의 운영체제는 프로그램의 실행을 위해 다양한 메모리 공간을 제공하고 있습니다.
프로그램이 운영체제로 부터 할당받는 대표적인 메모리 공간은 4가지가 있다.
코드(code)
- 메모리의 코드(code) 영역은 실행할 프로그램의 코드가 저장되는 영역으로 텍스트 영역이라고도 부른다.
- CPU는 코드 영역에 저장된 명령어 하나씩 가져가서 처리하게 된다.
데이터(data)
- 메모리의 데이터(data) 영역은 프로그램의 전역 변수와 정적(static) 변수가 저장되는 영역이다.
- 데이터 영역은 프로그램의 시작과 함께 할당되며, 프로그램이 종료되면 소멸한다.
스택(stack)
- 원시타입의 데이터가 값과 저장(int, byte, double…)
- heap 영역에 생성된 Object 타입의 데이터의 참조값이 저장된다.
- 함수가 호출될 때 사용하는 메모리이다.
- 기능 수행이 끝나면 자동으로 반환되는 메모리이다.
힙(heap)
- Object 타입의 데이터가 저장(Strein 등)
- 애플리케이션의 모든 메모리 중 stack을 제외한 부분
- 자동으로 관리되지 않는 메모리 영역
- CPU가 엄격하게 관리하지 않습니다.
참조변수
반응형
'JAVA' 카테고리의 다른 글
[JAVA] Enum (0) | 2023.07.18 |
---|---|
[JAVA] 배열(Array) (0) | 2023.07.18 |
[JAVA] for, while 문을 사용한 별(★)그리기 (0) | 2023.07.18 |
[JAVA] 반복문 (0) | 2023.07.17 |
[JAVA] 랜덤함수 (0) | 2023.07.17 |