정적으로 할당된 메모리 영역
메소드 호출과 관련된 데이터와 Primitive타입의 데이터를 저장하는 메모리 영역
(boolean, char, short, int, long, float, double)
메소드가 호출될 때마다 해당 메소드의 스택 프레임이 생성되며, 메소드가 종료되면 이 스택 프레임은 사라짐
스택에 저장되는 정보는 :
Last In First Out (LIFO) 구조로, 마지막에 호출된 메소드가 먼저 종료됨. 이 메모리 영역은 고정된 크기를 가지고 있으며, 너무 많은 메소드 호출로 인해 스택 크기를 초과하면 StackOverFlowError가 발생함
동적으로 생성된 객체들이 저장되는 메모리 영역
힙 영역은 크게 두 영역으로 나눔 :
Heap은 스택과 달리 크기가 동적으로 조정될 수 있지만, 지나치게 많은 객체가 생성되거나 관리되지 않으면 OutOfMemoryError가 발생할 수 있음