如何通知java虚拟机进行垃圾回收?以及垃圾回收机制的原理是什么

 我来答
一笑而过酱油郎
推荐于2017-10-11 · 超过20用户采纳过TA的回答
知道答主
回答量:54
采纳率:0%
帮助的人:46.1万
展开全部
java的垃圾回收会由虚拟机自动进行。因为各版本虚拟机的实现不一样,具体回收时点会有一定的不同,但大体上在对内存不足时,是一定会尝试进行一次回收的。如果回收后,内存还是不够,则会报出经典的OutofMemory异常。
用户可以调用System.gc()进行强制的内存回收,但和上面一样,回收完后不一定就保证能有足够的内存。
具体原理你可以想象为虚拟机会保存一张森林结构的内存对象表,林中各树的根节点是各个线程,线程中引用的对象,以及这些对象引用的其他对象会按照引用关系依次排列分布到树中。这样当GC进行时,依次扫描所有对象,如果一个对象的父引用指向不到一个处于活动状态的线程,或者所有直接父引用已经标记为可回收,则将这个对象标记为可回收。最后再释放所有标记为可回收的对象内存,达到清理内存垃圾的目的。
百度网友12ee0fd
2012-12-08 · TA获得超过4.7万个赞
知道大有可为答主
回答量:1.1万
采纳率:66%
帮助的人:1990万
展开全部
System.gc() 可以建议jvm进行垃圾回收,不过这个可以通过配置禁止掉。

一个后台线程在资源不足或一定时间后回收废弃的对象占用的内存。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沫声墨o
2012-12-08 · 超过53用户采纳过TA的回答
知道答主
回答量:179
采纳率:100%
帮助的人:113万
展开全部
System.gc(); finlloline(); runtime.system.gc();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式