什么时候java无限循环停止?
我读到了无限循环,并发现在某些语言中它会在堆栈溢出或达到分配的最大内存时停止.其他人将永远循环,具体取决于程序和语言的类型.
我的问题是,java无限循环停止吗?我只是好奇,因为java有一个垃圾收集器,当内存泄漏时,如果达到分配的最大内存和堆栈溢出,则重用内存. 此外,这种无限循环会停止吗? for( ; ; ){} 解决方法
有些人有,有些则没有.这取决于循环的实现方式. 基本上,您确定在其他语言中停止的情况也可以在Java中停止…取决于您如何编码它们. >通过无限递归实现的循环将发生堆栈溢出.这在Java中比在某些语言中更容易“实现”. (无尾调用优化.) (还有各种其他方式可以看似无限循环终止.)
垃圾收集器回收无法访问的对象,但无法回收可到达的对象(即程序将来可能使用的对象). 垃圾收集器不处理堆栈内存,因此它与堆栈溢出失败无关.
没有. 严格来说,任何循环都不是无限的,如果它因任何原因停止……这包括堆栈溢出或内存耗尽等原因. 但即使是无限循环也不是真正的无限.最终用户将杀死循环程序,电源将失败,硬件将被废弃……或类似的东西. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |