00:00
下边啊,在咱们讲解具体垃圾回收器之前啊,咱们呢,先给大家说一下,咱们如何呢去查看,呃,相应的一个代码,在执行过程当中,它默认的垃圾回收器是什么?诶如何查看这个默认的是什么?那么咱们在前面讲这个历史的时候呢,提到过在JDK9当中,这个j first呢,是不是变成了叫默认的垃圾回收器了,OK,那么咱们这块呢,就相当于是看一看这个九当中是不是用的这个j first1呢,九之前它用的呢是什么?那么如何去查看呢?这块我们给大家提了两种方式啊,两种方式啊,这种呢算是一个被动方式,这个呢是我们更直接的一个方式,这呢提到一个叫print command line flex啊就是打印一下我们这个命令行,这个它的一些相关的一些参数,这个参数当中就包含了我们使用的这个垃圾回收器,那另外一个呢,就是我们看一下相关的这个垃圾回收器使用的那个参数的话呢,在我们这个指份查看的时候呢,它是不是被使用,那如果被使用的话呢,是一个加号,那就是使用的,如果减号那就没使用,对吧?诶这呢也可以,哎间接的进行一个判断啊行,那我们首先呢,就来演示一下,比如说第一种方式。
01:03
这块的话呢,我写好了一个程序啊,大家呢,其实可以写一个任何一个程序,只要呢,别运行这个程序呢,啊,这个一运行终止了也没关系是吧,因为我们这个呢,直接是加上这个参数以后呢,就会打印在我们这个命令行上了啊那这个控制台上了都可以,我这呢写了一个list,然后呢,我们是往里边不断去添加数据,这个呢,我们添加的稍微慢一些啊,添加的稍微慢一些,OK,那这呢,我们使用的就是刚才提到了叫printer command line flex。OK,那当前的话呢,先看一下我这个JC啊j c test我们先演示一下,是在这个JDK针对17章啊JDK8当中,然后我们这个运行环境呢,咱们也打开看一下。嗯,这呢也是1.8 OK,在这个场景下呢,咱们这里边做一个选择啊,咱们是第17章是吧。好,做个选择呢,我们先演示一下叫jc use啊OK,然后在这块呢,我们去把刚才说的这个参数呢,给它加上啊加号啊叫print。诶,Command line,然后flags。
02:04
这对吧,好,我们这块呢点OK,那此时的话呢,我们加上这个参数以后呢,我把它运行起来,来做一个run。好跑起来了,这个程序呢,诶,它一会半会呢,可能还执行结束不了啊,然后呢,在这个参数当中啊,这就是我们说的一些参数,大家往后拽就能看到呢,我们当前使用的这个垃圾回收器,你看这个非常清楚的写的,我们这是个加号,就是我们现在呢,正在使用的叫powerline jc,就我们在这个JDK8当中,咱们默认的这个,大家可能会说,诶这不是新生代嘛,新生代的话呢,咱们对应的是叫parallel对吧。看是这个啊,那么老年代用的是什么呀,怎么没写啊,这个呢,我们新生代用的是它的话呢,自动的就会触发我们这个parallel o啊,所以说它俩呢,就是我们现在正在使用的这个,诶新用代和老年代的垃圾回收器行,那么我们也可以呢,比如说呃,WIN2一下CMD打开,咱们呢,通过命令行的方式呢,也可以进行一个查看,首先呢,JPS查看一下当前这个程序的一个进程啊,924啊这么小个数啊,然后呢叫解符,解符呢杠flag,然后后边的话呢,大家可以呢,去输入我们这个参数,比如说我们这个加号,后边这个你想看的是当前叫做use。
03:16
啊,Parallel这个JC是吧,看看它呢,诶是不是使用这个参数了,然后针对的是叫924啊一回车。行,那这种呢,大家看到这是个加号啊,表示我们当前正在使用,那我们再换一个啊,这个老年代的话呢,我们这有个叫old的,所以你把这old呢,比如说我给它加上parallel old j c924按一回车。诶大家看是不是这时候也是一个加号啊,说明呢,我们当前呢,使用这个JC的时候呢,它会自动的触发老年代呢,用的是叫parallel old的JC啊对应我们这块呢,就相当于是它俩呢,就自动的是一个搭配关系,OK,行这呢是我们说这个啊,那顺便呢,比如我们去看一下就要j in for-flag,我就要use一下叫j first jc,然后924。啊回收一下,嗯,这个回撤一下,那这时候呢,他说根本就呃又是呃,这个GC这个C写错了哈,C是吧,这样。
04:09
那这时候呢,它是个减号说明呢,我们在JDK8当中呢,我们是没有使用这个g first垃圾回收器的。啊,这个大家稍微关注一下行,那这块我们就先说清楚,它我把这块停一下,然后的话呢,我们把当前这个程序啊,咱们给它改成JDK9的这个版本啊,针对它我们在这个位置呢,引入叫JDK9。嗯,导进来是吧,来做个应用啊,然后在这个S这块呢,我们也选的是这个酒的环境啊,OK,然后接下来呢,我们再回到这个run,呃,在这个位置我们改成是比如说1.9。这个呢不变好,我现在再做个OK,再把这个程序呢跑起来。嗯,起来了,那这种大家再往后看,你看此时的话呢,我们这里边显示的就是我们使用的是不是叫G1的g first的一个GC啦,就是使用的叫g first垃圾回收器,行,那我们在这个WIN2一下啊,CMD进来JPS啊j in for-flag,然后呢,我们先比如说叫use一下j first j c是吧。
05:12
呃,当前呢,是6164嘛啊6164啊。好回车一下,你看此时的话呢,这时候是个加号了,那这first的话呢,我们说新生代老年代呢,它都可以去使用,所以呢,就就他自己啊,就一个加号,那我们如果再去演示一下,比如说刚才提到了说这叫use一下叫para啊EL啊,这个JC看一下这时候还在用我们这个叫parallel这个JC的吗?他一回车显然已经不用了。所以呢,在我们这个JD9的时候啊,咱们就使用的叫j first了。啊g first1直到目前呢,咱们使用的都是g first,哎,所以的目前呢,就是我们这个JK14这个版本啊,因为呢,除了这个G之外呢,我们说后边像这个ZJC啊,现在是不是还是都是那个叫嗯实验阶段呢,是吧?哎,他还没有正式的列入到我们这个JDK这个版本当中,所以呢,我们现在用的呢,都是这个j first OK行,那么刚才呢,这个演示呢,咱就呃给大家说清楚了,咱们如何去查看咱当前使用的是什么样的垃圾回收器啊,一个呢是通过这个参数,或者呢,通过命令行呢,大家可以去验证一下我们在使用的是哪一个这个垃圾回收器。
06:17
行,这个呢,大家自己呢,也可以去操作一下啊。
我来说两句