00:00
大家好,我是上硅谷扎艺学科的夏磊老师,接下来和大家分享一道面试题啊,这道面试题是经翅出现的什么呢?诶,Je垃圾回收机制啊,GC发生在GVM哪个部分?诶有急用GC他们的算法是什么?好,咱们看一下诶首先第一个问题,诶垃圾回收GC发生在我gbm体系结构的哪部分啊?哎,Hep堆啊,各位一定要记住,GC是发生在堆里面的,那这块AGC分几种啊这块哎,咱们可以看一下。GC分几种啊,GC是什么?分带收集算法在堆里面,它是什么呢?不同的区域哎有不同的策略,首先哎在什么呢?次数上频繁收集样区啊对应的什么?呃,年轻代是频繁收集的啊是什么呢?啊,Minor GC,然后呢,哎再往后次数上较少收集old的区啊这个老年代是什么呢?较少收集的,它发生了GC什么four GC,各位啊minor GC和什么呢?诶four gc2种,然后呢,哎基本上哎在什么呢?哎咱们哎永久区是没有GC的啊各位这块要清楚,还有啊对应的什么呢?咱们GC2种,哎什么呢,Minor GC和four GC,还有GC的算法是什么?各位,一共四大算法,各位这块需要各位记忆一下,首先诶引用术法是什么呢?只要。
01:42
对象互相之间有引用,只要有什么有对象被引用了,诶这块呢,我GC就不进行垃圾回收,但是技术引用技术法已经被什么呢?被GVM淘汰了啊,现在GVM已经不采用这种方式了,为什么他没办法处理循环引用啊,A引用,BB也引用,A互相引用,循环引用的这种问题他没办法去解决,所以引用技术法已经被淘汰了,好还有什么呢?诶第二个算法,什么复制算法,诶复制算法它发生在哪儿?诶发生在年轻代中啊,它也就是咱们的什么呢?Minor GC啊这块minor GC它采用的就是复制算法,那它的优缺点是什么呢?咱们可以看一下啊复制啊,顾名思义,我从什么呢?从一个内存区域复制到另外一个内存区域,它的什么呢?缺点很明显,我是不是得需要双倍的空间啊,哎,我复制得需要空间。
02:42
还有什么呢?复制过去存的地方也需要留出空间,需要双倍空间,这是它的缺点,那它的诶这块优点是什么?效率高啊,非踌直接拷贝过去,然后呢,诶没有内存碎片,拷贝过去是连续的啊这就是啊复制算法它的优点和缺点,好,这是咱们说完了复制算法再往后第三种算法叫什么?标记清除,诶那是标记谁清除谁啊啊各位咱们看一下标记清除发生在什么老年代,也就是咱们的old区这块呢,一般是什么呢?我先进行什么呢?标记,然后呢,诶再进行清除啊两种操作,这块呢,诶这块标记清除到底是清除谁啊,清除没有标记的啊,我标记的是什么?幸存者清楚没有标记的啊那这块哎,它的什么呢?优缺点分别是什么呢?缺点,会扫描两次,我标记一次。
03:42
清除一次两次,然后诶另外一个缺点,各位看我这块这张图也能看出来它是什么,我把这些没有标记的给清除掉了,各位是不是有很多空的地方啊,这就造成了什么内存碎片啊,这是它的缺点啊,那它优点什么?跟刚刚复制算法来比,它优点是什么?诶是不是我不需要额外的空间了,我在这一块内存空间就可以进行操作啊,这是它的什么呢?诶像的优缺点啊,再往后还有什么呢?诶标记压缩,这个标记压缩发生在诶哪个区域啊,也是在咱们老年代,也是咱们的什么呢?Old的区对应的什么fo GC啊它的诶特点是什么?先进行标记,再进行压缩,咱们看一下啊,我先进行标记之后呢,诶这块哎也是扫描两次,也是它的缺点啊,这块扫描两次进行压缩动作,怎么做的?哎,就是它会有什么,有内存碎片之后我进行一次挪。
04:42
动啊把什么呢?这块不连续的诶相应的内存空间给它变成连续内存空间,缺点啊,需要有移动对象的成本啊,这块优点是什么呢?没有内存碎片啊,这就是咱们所说的啊四大算法啊,但是这块各位看老年代是不是两种啊,这块对应的什么呢?咱们fo GC诶怎么两种算法,其实这两种算法它是结合使用的啊,先标记哎进行清除,清除完了以后,清除多次以后产生很多内存碎片之后再做压缩啊这就是啊咱们诶进行的两种混合起来完成了什么呢?哎,咱们的标记清除压缩啊,它的特点是什么?是不是减少了移动对象的成本啊,这块相对而言比什么呢?比单独的标记压缩呃,减少移动对象的成本啊,以上就是咱们对于GC的一个呃,一个讲解,这块还得带各位。
05:42
诶,咱们再回顾一遍,诶,我GC发生在咱们的GVM哪个部分啊,Hip发生在堆音里面,那我GC几种啊,两种一个是什么呢?Manner GC,还有一个什么呢?For GC manner GC发生在什么呢?哎,样区啊,咱们对应的什么呢?年轻代中它用的什么算法,复制算法啊,还有什么呢?哎,咱们的副GC发生在哪儿?发生在咱们O的区,咱们老年代中他用什么算法,是标记清除跟标记压缩的一个什么整合,还有咱们这四种算法,它各自的特点优缺点,各位也需要记忆一下啊,这个面试题啊,这样去回答就可以了。
我来说两句