![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Entry_N3 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 446 Регистрация: 8.2.2007 Репутация: нет Всего: нет |
Почему при бесконечной рекурсии Java падает с ошибкой, а при бесконечном цикле не падает? Кто знает, наверное, поймет вопрос.
|
|||
|
||||
| DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: 1 Всего: 19 |
Вообще-то это у любого языка, не только у Java
Дело в том что при бесконечной рекурсии происходит вызов процедуры из самой себя же и предыдущая которая вызывалась попадает в программный стэк, который ограничен по своему объёму и как следствие ограниченности объёма происходит его переполнение при бесконечной рекурсии(я прошу прощение за некоторую безграмотность и невнятность написанного, это всё из-за сильного недосыпа) А когда происходит бесконечный цикл, даже если в его основе лежит таже процедура, то тут пухнет уже объём занимаемый в ОЗУ, ну как бы программный стэк он ограничен и конечен(пэтому он переполняется), а если использовать бесконечный цикл, то тут уже другое. Правда если цикл слишком уж долго будет выполняться, то тут как никрути система сама скинет прогу считая её повисшей(сам наблюдал чистол ради эксперимента) Ещё раз прошу проение за некоторую бессвязность моей речи... -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." |
|||
|
||||
| Entry_N3 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 446 Регистрация: 8.2.2007 Репутация: нет Всего: нет |
Понятно, спасибо.
|
|||
|
||||
| kosmonaFFFt |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 538 Регистрация: 14.4.2008 Где: Иннополис Репутация: нет Всего: 5 |
Насчет Java это верно - нету там оптимизации хвостовой рекурсии в компиляторе (javac)...
-------------------- ![]() |
|||
|
||||
| ivanovpv |
|
|||
![]() Варвар ![]() ![]() Профиль Группа: Участник Сообщений: 639 Регистрация: 26.1.2005 Где: Москва Репутация: 4 Всего: 28 |
Если короче, то происходит переполнение стека... -------------------- Aut viam inveniam aut faciam |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |