JAVA垃圾回收的工作原理是什么?

 我来答
聚名企服
2023-03-31 · 网站建设 域名服务 云服务器
聚名企服
采纳数:42 获赞数:21

向TA提问 私信TA
展开全部
所谓jvm垃圾回收机制其实就是相较于于c、c++语言的优势之一是自带垃圾回收器,垃圾回收是指不定时去堆内存中清理不可达对象。垃圾收集器在一个Java程序中的执行是自动的,不能强制执行,程序员唯一能做的就是通过调用System.gc 方法来建议执行垃圾收集器。
放晴Fv
推荐于2019-11-07 · TA获得超过122个赞
知道小有建树答主
回答量:116
采纳率:100%
帮助的人:92.9万
展开全部
Java的垃圾回收机制是Java虚拟机提供的能力,用于在空闲时间以不定时的方式动态回收无任何引用的对象占据的内存空间。
需要注意的是:垃圾回收回收的是无任何引用的对象占据的内存空间而不是对象本身,很多人回答的含义是回收对象,实际上这是不正确的。
System.gc()
Runtime.getRuntime().gc()
上面的方法调用时用于显式通知JVM可以进行一次垃圾回收,但真正垃圾回收机制具体在什么时间点开始发生动作这同样是不可预料的,这和抢占式的线程在发生作用时的原理一样。
程序员只能通过上面的方法建议JVM回收垃圾,但是JVM是否回收,同样是不可预料的。
希望能帮到你,望采纳!
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pnqvvvvv
2018-05-28
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部

Java虚拟机采取了一种自适应的垃圾回收技术。

停止-复制:先暂停程序(它不属于后台回收模式),然后将所有存活的对象从当前的堆中复制到另一个堆中,没有复制的对象就是垃圾,而被复制到新堆中的对象会紧凑的排列。

标记-清扫:遍历所有引用,进而找出多有存活的对象。当没找到一个存活的对象,就会给对象标记,这个过程中不会清理任何对象。只有全部标记完成之后,才会清理垃圾。

在Java虚拟机运行过程中,如果所有对象稳定,垃圾回收器效率降低的话,就会切换到"标记-清扫";同意,Java虚拟机会跟踪"标记-清扫"效果,要是堆空间出现很多碎片,就会切换到”停止-复制“;

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大大的Wiener
2018-03-24 · TA获得超过6.4万个赞
知道大有可为答主
回答量:392
采纳率:90%
帮助的人:33.2万
展开全部
  • java垃圾回收的原理:  垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。

  • 回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。

  • java垃圾回收的优点:它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有"作用域"的概念,只有对象的引用才有"作用域"。

  • 垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
MoooooooD
2018-01-05 · TA获得超过113个赞
知道答主
回答量:138
采纳率:100%
帮助的人:62.1万
展开全部
手敲,要给分哦,简单易懂。
JAVA垃圾回收机制(GC)是JAVA和C++主要区别。
因为C++的话,new之后一定要delete,才能回收内存。而JAVA能够自动回收。
其实现原理,是每当跑一个JAVA程序,他会启动一个用户不知道的优先级别低的线程来时刻监控你代码中申请的内存。
如果某个变量不再被用,则回收该部分内存。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式