垃圾回收技术

Posted cuixiaomeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了垃圾回收技术相关的知识,希望对你有一定的参考价值。

    从Java发布最早的版本开始,一直都保留的核心特点就是垃圾回收。垃圾回收使我们不再需要手动管理内存。当使用完一个对象后,我们只需要删除他的应用,好,垃圾回收就会自动释放它。垃圾回收为程序员减少了分配,释放内存空间等繁琐步骤。

    尽管垃圾回收达成了无需手动管理内存的目标,也防止了传统的内存泄漏。但是作为代价,但是有时垃圾回收相当笨拙。不同的jvm,垃圾回收策略也有所不同。垃圾回收的最大的敌人就是传说中的主要(major)或(full)垃圾回收。除了Azul JVM,所有的JVM都存在这个的问题。

   当垃圾回收运行时,他会运行一项可达性测试,他会创建一个由对象组成的跟集合(root set),该集合包含每个运行线程中的直接可见的对象。接着,他会探寻跟集合中对象涉及的其他对象,然后探寻这些对象涉及的对象,直到所有的对象都被涉及。在这个过程中,他会记录下现时活动对象的内存地址。然后把不被使用的地址都扫除。恰当的说,他会把没有跟集合对象引用的内存都释放。最终,他会压缩,整理这些内存,这样新的对象才能获得内存分配。

 

以上是关于垃圾回收技术的主要内容,如果未能解决你的问题,请参考以下文章

有垃圾回收机制为啥会出现内存溢出

Java垃圾回收怎么理解?

关于垃圾回收的一些基本原理及技术解析

5、垃圾回收机制

java中的垃圾回收机制是怎么回事?

JVM都有哪些垃圾回收算法?