
컴파일된 응용프로그램의 네이티브 코드가 저장되는 영역이다.
전역 변수, 정적 변수 등 프로그램 전반적으로 사용될 수 있는 데이터가 저장되는 영역이다.
응용프로그램이 실행되는 시점에 할당된다.
지역 변수나 매개변수와 같은 일시적인 데이터가 저장되는 영역이다.
컴파일 타임에 크기가 결정되며, 라이프 사이클이 끝나면 자동으로 할당 해제된다.
- 스택 오버플로우 (Stack Overflow)
스택에 데이터가 쌓이다가 컴파일 타임에 정해진 크기를 벗어나면 발생하는 예외이다.
try/catch 예외 처리를 해도 프로그램이 비정상적으로 종료된다.
이는 스택 메모리가 모두 할당되어 오류를 알릴 메서드를 호출할 수 없기 때문이다.
사용자에 의해 동적으로 할당되는 메모리 영역이다.
동적으로 할당되기 때문에 런타임에 크기가 결정된다.
- 힙 오버플로우 (Heap Overflow)
힙 영역에서 스택 영역을 침범하는 현상을 말한다.