Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] StackOverFlow error

Eu testei um loop infinito com o While por algum tempo ele não apresentou esse erro. Ele uma hora iria apresentar o erro alguma hora ou o while não está ocupando mais um espaço na pilha, assim como a chamada do método, mostrada na aula?

1 resposta
solução!

Olá Arthur, tudo bem com você?

Isso mesmo, a pilha de execução empilha funções, e o StackOverFlowError acontece quando acaba o espaço de armazenamento dessa pilha. No entanto, quando estamos falando de um laço de repetição, como o While, Do-While e For, tradicionalmente eles não estão empilhando repetitivamente na pilha de execução, uma vez que, ainda que tenha uma função dentro do laço, para passar até a próxima iteração ela é executada por completo, isto é, desempilhada e voltando ao estado da pilha no início da iteração.

Portanto, o StackOverFlowError é causado pelo transbordamento da pilha de execução, e a maneira mais comum de acontecer é através da Recursão, porém laços de repetição não causam esse tipo de erro por si só.

Fico à disposição!

Um grande abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!