JVM(PART II)Eden Survivor名称由来

来源:互联网 发布:python matplotlib安装 编辑:程序博客网 时间:2024/06/10 13:05

Eden:

含义:伊甸园(The garden of Eden)

Survivor:

含义:幸存者

GC:

含义:Garbage Collection

Stop the world event

含义:地球停转事件,简称STW,即在执行垃圾收集算法时,Java应用程序的其他所有除了垃圾收集收集器线程之外的线程都被挂起

为什么java的垃圾回收里会使用这几个名词来作为堆内存的名称呢?

《创世纪》里的几个小故事:

上帝创造人类

上帝花了六天时间去创造万物,在第六天他按照自己的形象创造出人类(亚当),后来他感觉亚当一个人有点孤独,于是使用亚当的一根肋骨创造出了夏娃。并且把他们和很多动物植物都放在一个叫做伊甸园(The garden of Eden)。
这里写图片描述

亚当夏娃偷吃善恶果

上帝告诉亚当和夏娃不要偷吃善恶树上的果子,但是在撒旦的诱惑下他们还是偷吃了,于是上帝把他们赶出了伊甸园。
这里写图片描述

该隐和他的弟弟

亚当和夏娃有两个儿子,一个叫该隐,一个叫亚伯。该隐因为一件事嫉妒亚伯,把自己的弟弟亚伯给杀了。
这里写图片描述

诺亚方舟

上帝感到人类的罪恶深重,于是他决定来一次大清洗,他的办法很简单——使用洪水(GC)。在这之前他让诺亚造了一个大船(诺亚方舟),在洪水来到的时候登上船的人和动物都没有死去(Survivor)。这些人和动物都开始重建家园。
这里写图片描述

再来看看java的堆内存:
这里写图片描述

《创世纪》和JVM的对于关系

如果把《创世纪》中的人和动物比作JVM堆内存中的对象的话,还是列个表:


《创世纪》 JVM 伊甸园(The garden of Eden) Eden区 诺亚方舟(Noah’s Ark) 两个Survivor区 诺亚(Noah) GC算法 大洪水(The flood) 一次Minor GC ——Stop the World event(地球转事件) 幸存的人和动物 从Eden区进入Survivor区的对象 被大洪水消灭的人和动物 被GC回收的对象

这么一看这些比喻还是非常恰当的。

阅读全文
1 0
原创粉丝点击