В настоящее время я просматриваю мой OCPJP 6 с помощью Sierra & Bates рецензент. Я наткнулся на вопрос о бесконечном цикле, не бросающем StackOverflowError. Насколько я узнал, он должен бросить его в конце концов.Java: бесконечный цикл в конечном итоге приводит к StackOverflowError?
Пожалуйста, обратитесь к этому PDF на вопрос: https://java.net/downloads/jfjug/SCJP%20Sun%20Certified%20Programmer%20for%20Java%206-0071591060.pdf
Вопрос Я имею в виду от Self Test Глава 5 Вопрос 9 (стр 455 из PDF).
Я ответил, CDF. Правильный ответ, согласно книге, был DF. Также было объяснено, что случай 0 инициирует бесконечный цикл, а не StackOverflowError.
Правда, он инициирует бесконечный цикл, но в конечном итоге оказывается StackOverflowError. В ответе C говорилось, что «может вызвать StackOverflowError», поэтому я знал, что C был прав.
Если я ошибаюсь, может кто-нибудь объяснить, почему?
Этот 'for (;;);' бесконечный цикл. Почему это должно вызвать 'StackOverflowError'? Все больше и больше занимает стек на каждой итерации? –
Бесконечный (или даже конечный с высоким) рекурсивный вызов приводит к переполнению стека, а не к циклу. –
Offtopic, но вы знаете, что PDF-файл предназначен для сертифицированного Java-сертифицированного Java-программиста, который больше не существует как таковой? Oracle разделила это на две различные сертификаты. – eis