垃圾回收——概述

我们之前对Java虚拟机已经有了一定的了解,而且,对Java虚拟机的内存结构以及对象,都有了一定的了解之后,我们来看垃圾回收,我们在写Java应用的时候,内存都是由Java虚拟机来进行管理的,不管是申请内存也好,还是释放内存也好,都不需要我们程序员来进行处理,Java虚拟机就给我们处理完毕了,那么,我们在一般情况下来进行开发的过程中,我们是不需要关注这一块内容的,但是,话又说回来,如果我们遇到了一些问题,比如说在高并发环境下,出现了瓶颈的时候,我们就需要去找,来进行优化,那么,Java虚拟机的垃圾回收就是我们优化的一个非常重要的地方,那么,从本节课开始,我们就深入的了解一下所谓的垃圾回收。

我们看到垃圾回收这四个字,我们就能够提出来这几个问题,我们的对象什么时候才会变成垃圾?即如何判定对象为垃圾对象,也就是说,我们回收的对象只有垃圾,我们用到的对象肯定是不能回收的,回收的是不用的对象,也就是所谓的垃圾对象。第二个问题就是,如何回收?其实我们在处理垃圾回收的时候,其实主要的就是这两个问题,当然了,除了这两个问题之外,还有一个非常关键的,也是影响性能的,也是会在高并发环境下经常会造成我们系统瓶颈的问题,就是何时回收?当然,我们重点所要了解的是前两块内容

如何判定对象为垃圾对象呢?我们这里主要讲解两种方法,引用计数法可达性分析法。这是两种判断对象是否为垃圾对象的两种常见的算法。

如何回收?这里我们重点讲两个,回收的策略常见的垃圾回收器

那么,回收策略都有哪些呢?这里我们会重点的讲解四个,第一个是标记-清楚算法,第二个是复制算法,第三个是标记-整理算法,第四个是比较智能的,我们之前也提到过,叫做分代收集算法

垃圾回收器我们也会介绍几个比较主流的,比如说,Serial垃圾回收器Parnew垃圾回收器、比较有名的Cms垃圾回收器、还有特别有名的,我们也会重点讲的,叫做G1垃圾回收器

猜你喜欢

转载自blog.csdn.net/G_66_hero/article/details/84454622