加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

什么时候java无限循环停止?

发布时间:2020-12-15 05:01:55 所属栏目:Java 来源:网络整理
导读:我读到了无限循环,并发现在某些语言中它会在堆栈溢出或达到分配的最大内存时停止.其他人将永远循环,具体取决于程序和语言的类型. 我的问题是,java无限循环停止吗?我只是好奇,因为java有一个垃圾收集器,当内存泄漏时,如果达到分配的最大内存和堆栈溢出,则重
我读到了无限循环,并发现在某些语言中它会在堆栈溢出或达到分配的最大内存时停止.其他人将永远循环,具体取决于程序和语言的类型.
我的问题是,java无限循环停止吗?我只是好奇,因为java有一个垃圾收集器,当内存泄漏时,如果达到分配的最大内存和堆栈溢出,则重用内存.

此外,这种无限循环会停止吗?

for( ; ; ){}

解决方法

My question is,do java infinite loops stop?

有些人有,有些则没有.这取决于循环的实现方式.

基本上,您确定在其他语言中停止的情况也可以在Java中停止…取决于您如何编码它们.

>通过无限递归实现的循环将发生堆栈溢出.这在Java中比在某些语言中更容易“实现”. (无尾调用优化.)
>如果循环重复分配仍然可以访问的对象,则会发生堆溢出…因此GC无法回收它们.

(还有各种其他方式可以看似无限循环终止.)

I’m just curious because java has a garbage collector,that reuse memory when there’s memory leak in case of reaching allotted maximum memory and stack overflow.

垃圾收集器回收无法访问的对象,但无法回收可到达的对象(即程序将来可能使用的对象).

垃圾收集器不处理堆栈内存,因此它与堆栈溢出失败无关.

Also,will this kind of infinite loop stop?

没有.

严格来说,任何循环都不是无限的,如果它因任何原因停止……这包括堆栈溢出或内存耗尽等原因.

但即使是无限循环也不是真正的无限.最终用户将杀死循环程序,电源将失败,硬件将被废弃……或类似的东西.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读