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?
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?
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!