JVM的Eden由来

JVM(PART II)Eden Survivor名称由来

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回收的对象

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


转载自:https://blog.csdn.net/uncle_gy/article/details/78136966

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值