본문 바로가기
JAVA&스프링

JAVA 스택 영역(Stack area)

by 개발고구마 2025. 6. 13.

- 지역변수 테이블, 피연산자 스택(연산자가 아닌 것들 -> +,-,* 등), 메서드 반환값 등을 저장

- 보통 지역변수 테이블을 스택으로 지칭

- 지역변수 테이블은 슬롯(스택에 쌓이는 한 칸)으로 이루어지며 기본형 변수 하나가 슬롯 한 개(또는 2개)를 사용

    int a , byte b 로 되어있으면 스택에는 [a , b -> 로 쌓임. 한 칸에 32비트인데 b가 8비트여도 한 슬롯에 쌓임(c++동일)

    메서드가 불릴 때 0번째는 항상 this(슬롯에 번호가 있음)

- Java 스택의 크기는 메모리 용량이 아니라 슬롯의 개수

- JVM이 허용하는 스택의 크기를 초과할 경우 StackOverFlowError(스택오버플로우) 에러 발생

    대표적으로 재귀호출 같은거 잘못했을때

 

Native method stack

- C++로 개발된 Native코드가 실행 될 때 지역변수 및 자동변수가 사용하는 스택 메모리

- 구현하기에 따라 JVM stack과 합쳐서 사용하기도 함