Я получаю исключение StackOverFlowException в этом коде, потому что моя JVM не поддерживает оптимизацию хвостового вызова, верно?

Я получаю StackOverflowException для этого метода Java:

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);
    }
}

Я играю с рекурсией хвостовых вызовов, так что, думаю, вот что происходит, когда JVM не закорачивает стек, верно?

5
задан Erick Robertson 13 December 2010 в 13:52
поделиться