Как говорят другие, это зависит от количества памяти, доступной для JVM.
Теоретически вы можете вычислить из памяти количество вызовов функций, если (а это большое значение, если), вы знаете функции и их потребление памяти.Поскольку (неоптимизированная) рекурсивная функция должна помещать все локальные переменные и параметры в стек, это очень зависит от функции.Это означает, что когда у вас есть X-функции без локальных и одного параметра int в стеке, вы получаете только X / 4, когда вы получаете один с 2-мя int-параметрами и 2-мя локальными переменными (игнорируя другие издержки фрейма стека, как исключение, адреса возврата,...).