я получаю StackOverflowException
этого метода Java:Я получаю исключение StackOverFlowException в этом коде, потому что моя JVM не поддерживает оптимизацию хвостового вызова, правильно?
private static final Integer[] populate(final Integer[] array, final int length, final int current) {
if (current == length) {
return array;
} else {
array[current] = TR.random.nextInt();
System.out.println(array[current]);
return populate(array, length, current + 1);
}
}
Я играю с хвостом вызова рекурсией, так что я думаю, это то, что происходит, когда виртуальная машина не короткое замыкание права стеки?
Я не думаю, что документ добавляет много ... ссылка на хвостовую рекурсию не упоминает, оптимизированы ли ссылки на столы – Eddy