Насколько глубоко мне нужно идти в стек вызовов, прежде чем я получу StackOverflowError? Является ли зависимая платформа ответа?
Какова максимальная глубина стека вызовов java?
Ответ 1
Это зависит от объема виртуальной памяти, выделенной стеку.
http://www.odi.ch/weblog/posting.php?posting=411
Вы можете настроить это с помощью параметра -Xss VM или с помощью конструктора Thread(ThreadGroup, Runnable, String, long).
Ответ 2
Я тестировал свою систему и не нашел постоянного значения, иногда переполнение стека происходит после 8900 вызовов, иногда только после 7700 случайных чисел.
public class MainClass {
    private static long depth=0L;
    public static void main(String[] args){
        deep(); 
    }
    private static void deep(){
        System.err.println(++depth);
        deep();
    }
}
Ответ 3
Размер стека может быть задан с помощью командной строки -Xss, но, как правило, он достаточно глубок, сотни, если не тысячи вызовов. (Значение по умолчанию зависит от платформы, но не менее 256 тыс. На большинстве платформ.)
Если вы получаете переполнение стека, 99% времени, вызванного ошибкой в коде.
Ответ 4
Сравните эти два вызова: 
(1) Статический метод:
public static void main(String[] args) {
    int i = 14400; 
    while(true){   
        int myResult = testRecursion(i);
        System.out.println(myResult);
        i++;
    }
}
public static int testRecursion(int number) {
    if (number == 1) {
        return 1;
    } else {
        int result = 1 + testRecursion(number - 1);
        return result;
    }    
}
 //Exception in thread "main" java.lang.StackOverflowError after 62844
(2) Нестатический метод с использованием другого класса:
public static void main(String[] args) {
    int i = 14400;
    while(true){       
        TestRecursion tr = new TestRecursion ();
        int myResult = tr.testRecursion(i);
        System.out.println(myResult);
        i++;
    }
} 
//Exception in thread "main" java.lang.StackOverflowError after 14002
Класс тестовой рекурсии имеет public int testRecursion(int number) { как единственный метод.
