Простейший метод, который приводит к StackOverflowError

56. Написать метод, вызывающий StackOverflowError

Условие задачи:
Необходимо написать простейший метод, выполнение которого приведёт к StackOverflowError.


Спойлеры к решению

Подсказки
💡 StackOverflowError возникает при переполнении стека вызовов.
💡 Каждый вызов метода создаёт новый стековый кадр.
💡 Самый простой вариант — рекурсия без условия завершения.

Решение
public class StackOverflowExample {

    public static void main(String[] args) {
        overflow();
    }

    private static void overflow() {
        overflow();
    }
}

Метод overflow() бесконечно вызывает сам себя. Каждый новый вызов занимает место в стеке текущего потока.

После исчерпания доступного размера стека JVM выбросит:

java.lang.StackOverflowError

Минимальный вариант:

void overflow() {
    overflow();
}

Точное количество вызовов до ошибки зависит от размера стека, JVM и объёма данных в каждом стековом кадре.