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?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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!