2017-02-21 2 views
0

Мы все знаем, что StackOverflowError встречается обычно из-за неправильных рекурсивных функций, вызывающих столкновения памяти. Но что, если каждый раз, когда вы запускаете функцию, вы очищаете память (заданное значение равно null)? Позволит ли он бесконечный цикл без ошибок?Можно ли противопоставить StackOverflowError с Memory clear?

+0

Я не знал, что кучи памяти сталкиваются. TIL – Atreys

+0

в соответствии с ответом на ошибку Stackoverflow, «куча» может столкнуться с «стеком»: http://stackoverflow.com/questions/214741/what-is-a-stackoverflowerror –

ответ

0

Мы все знаем, что StackOverflowError встречается обычно из-за неправильных рекурсивных функций, вызывающих столкновения памяти.

Это неверное описание. Предполагая, что вы говорите о Java здесь, StackOverflowError бросается, когда стек вашего потока превышает установленный лимит, который обычно составляет не менее 256 кБ и не более пары мегабайт. Это не должно фактически сталкиваться с кучей - эта концепция на самом деле не применяется в многопоточной среде.