Stack overflow error는 함수를 재귀 호출하거나 순환 참조하거나, 너무 많은 메소드가 실행되어 제한된 스택 메모리 용량을 초과할 경우 발생합니다.
아래는 에러 발생 예시입니다.
public class StackOverflowDemo {
public static void recursiveMethod() {
recursiveMethod();
}
public static void main(String[] args) {
recursiveMethod();
}
}
하나의 메서드를 호출하면 하나의 스택이 쌓입니다.
이게 반복되어 쌓이면 StackOverflowError가 발생합니다.
에러를 해결하기 위해 '재귀', '순환 참조'로직은 가급적 피하고, 불가피하게 사용해야 할 경우 Stack Mem 용량을 높게 설정하는 방법이 있습니다.
'Java & Kotlin' 카테고리의 다른 글
자바의 Garbage Collection 이해와 성능 최적화 방법 (0) | 2023.07.30 |
---|---|
Lock과 Double Check Lock: 동시성 문제 해결을 위한 효율적 패턴 (0) | 2023.07.11 |
Java Functional Interface로 API 테스트 모듈 간결하게 만들기: 적용 사례와 코드 개선 (0) | 2023.07.11 |
Java에서 제공해주는 Functional Interface (0) | 2023.04.30 |
메서드 재실행 어노테이션을 만들자. 실무 & @Retryable (0) | 2023.04.14 |