- 지역변수 테이블, 피연산자 스택(연산자가 아닌 것들 -> +,-,* 등), 메서드 반환값 등을 저장
- 보통 지역변수 테이블을 스택으로 지칭
- 지역변수 테이블은 슬롯(스택에 쌓이는 한 칸)으로 이루어지며 기본형 변수 하나가 슬롯 한 개(또는 2개)를 사용
int a , byte b 로 되어있으면 스택에는 [a , b -> 로 쌓임. 한 칸에 32비트인데 b가 8비트여도 한 슬롯에 쌓임(c++동일)
메서드가 불릴 때 0번째는 항상 this(슬롯에 번호가 있음)
- Java 스택의 크기는 메모리 용량이 아니라 슬롯의 개수
- JVM이 허용하는 스택의 크기를 초과할 경우 StackOverFlowError(스택오버플로우) 에러 발생
대표적으로 재귀호출 같은거 잘못했을때
Native method stack
- C++로 개발된 Native코드가 실행 될 때 지역변수 및 자동변수가 사용하는 스택 메모리
- 구현하기에 따라 JVM stack과 합쳐서 사용하기도 함
'JAVA&스프링' 카테고리의 다른 글
| [Spring] 스프링 컨테이너를 왜 사용할까? (DI , IoC) (0) | 2025.06.22 |
|---|---|
| JAVA JVM 힙 영역과 GC(Garbage Collector) (1) | 2025.06.13 |
| JAVA JVM 런타임 데이터 영역 & 메소드 영역/데이터 영역(Method area) (0) | 2025.06.13 |
| JAVA 클래스 로더(Class loader) 및 로딩 과정 (1) | 2025.06.13 |
| JAVA JVM 구성요소 정리 (0) | 2025.06.13 |