# Ram의 구성
- 배열과 변수는 Ram에서 저장 영역의 위치와 방식이 모두 다르다.
- Stack과 Heap의 영역은 각자의 영역에 데이터가 계속해서 저장된다.
- Stack영역은 데이터가 누적되면서 점선이 아래로 증가,
- Heap영역은 데이터가 누적되면서 점선이 위로 증가한다.
[예시] Ram 의 구성

[참고] 저장량이 너무 많으면 Stack과 Heap의 점선이 맞닿게 되는 저장공간 부족 현상(스택 오버플로우 에러) 이 일어난다.
OS Kernel Space
- 드라이버가 저장되는 영역
- USB등의 장치를 연결하는 경우, 컴퓨터는 USB를 인식하기위해서 운영체제를 통하여 하드웨어에 전기신호를 보내게된다.
- 이 전기 신호를 보내기위해서 드라이버가 요구되며 이 드라이버가 저장되는 영역이 OS KERNEL이다.
Stack & Heap

Stack
- 변수를 선언하는 경우, 값 자체가 변수명의 저장 공간 명칭으로 stack영역에 저장이 된다.
- new키워드를 사용하지 않은 변수의 값이 저장되는 영역
Heap
- 배열의 경우 선언시 new를 사용하는데, new키워드는 heap영역에 저장 영역을 확보하는 키워드이다.
- 이를 heap영역에 메모리를 할당받았다고 표현한다. (배열을 저장할 영역을 메모리상에서 확보)
- 인덱스를 통해서 stack에 있는 인덱스 주소값으로 heap에 있는 해당 값에 접근이 가능하다.
타입
|
Stack 영역
|
Heap 영역
|
변수 |
X = 10
|
X
|
배열 |
배열의 인덱스 주소값
|
배열의 실제 값 (배열 통째로 저장)
|
'Web > Java' 카테고리의 다른 글
[Java] 클래스 (0) | 2025.01.09 |
---|---|
[Java] 객체지향 (0) | 2025.01.09 |
[Java] 컴파일 (0) | 2025.01.09 |
[Java] Project 생성 (0) | 2025.01.09 |
[Java] 자바 설치 (0) | 2025.01.09 |