内容简介:小说连载系列是我第一次尝试的新的技术讲解方式,希望通过小说的形式将技术细节讲解清楚。第一篇中长篇连载小说《我在JVM公司的那些年》,主要讲解JVM内部的一些原理,希望大家能够喜欢,多多支持。
小说连载系列是我第一次尝试的新的技术讲解方式,希望通过小说的形式将技术细节讲解清楚。
第一篇中长篇连载小说《我在JVM公司的那些年》,主要讲解JVM内部的一些原理,希望大家能够喜欢,多多支持。
郑重声明:小说人物和故事情节均是原创,未经同意禁止任何形式的转载,侵权将进入法律程序。大佬除外。
欢迎大家转发文章,谢谢!
本节知识点预告:新生代三区,垃圾回收。
大家好,我叫小史,是一个非科班程序员 …… 哦,不,在这部小说中,我是一个 java 对象。
前情回顾:
吃完午饭,师兄带我了解了一下我们公司工位的分布。
师兄:“我们都是 java 对象,所以我们都坐在 堆内存 这个区域,你看,堆内存区域分为两个主要的区域,一个是 新生代 ,这里坐的都是新人,还有一个是 老年代 ,里面都是公司元老级人物,工龄达到 15 的员工才有资格去老年代。”
原来在 JVM 公司,会根据员工的工龄来安排工位。
师兄接着说:“在新生代里,又分为三个区域, eden区 ,这里都是刚进公司的人,比如你,就坐在 eden 区。 Survior1区和Survior2区 ,这都是经历过一次以上的垃圾回收之后的人坐的地方。”
我看了下,师兄就坐在 Survior1 区,可恶的黑老大也在 Survior1 区,而 Survior2 区却没人坐。
我:“为啥 Survior2 区没人坐呢?”
师兄:“等到公司进行垃圾回收的时候你就知道了。”
我:“我还有个问题啊,为啥 Eden 区这么大,而 Survior1 和 Survior2 区却有点小呢?”
师兄:“公司每年都招人很多,招进来都放在 Eden 区,但是里面 很少有人能够熬过第一轮垃圾回收 ,所以实际上能够留下来的人并不多, Survior1 和 Survior2 区没必要这么大。”
我倒吸一口凉气,原来这第一轮垃圾回收就这么残酷。
恐怖的垃圾回收
下午正干活呢,突然一队穿着警服的人冲进来大声吼到:“别干啦,停下,把你们的工牌拿出来准备好。”
面对这突如其来的场面,我不知所措,这家公司这么粗鲁的吗?
我慢慢回过神来,这应该就是所谓的 垃圾回收 吧?但是都不提前打声招呼吗?
这时,从警队队尾慢慢走来一个人,这人穿得温文尔雅,眼神里却冒着杀气。这人是 垃圾回收器 。
他用不大但极有穿透力的声音说道:“今天有 98% 的人要走。”
说完,命令警队把引用计数为 0 的人全部抓起来,押送出了公司。
整个过程,没有一个人敢说话,就连之前嚣张至极的黑老大,现在也跟一只温顺的小猫一样,趴在工位上一动不动。
公司里安静极了,地上掉根针都能听见。
垃圾回收器:“行了,剩下的人自己调整工位吧,好好干,希望下次还能再看见你们。”
说完,垃圾回收器转身带着警队离开了。
我又看了看我的工牌, 工龄加一 了,原来经历过一次垃圾回收,工龄就会增加一呀。
(未完待续……)
垃圾回收是十分恐怖的过程,好在小史挺过了这第一轮,等待他的会是什么?欲知后事如何,请听下回分解。
小结
JVM的堆内存分为两个区,新生代和老年代,达到一定年龄的对象会放到老年代。新生代又分为三个区,Eden区,Survior1区和Survior2区,刚进入JVM还没有经过垃圾回收的对象被分配在Eden区。
下节知识点预告:内存清理算法
第一次尝试写技术小说,如果你喜欢这种形式,麻烦动动手指转发一下,你不经意间的动作,可能就会给大家带来一部伟大的技术小说。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Go 语言的垃圾回收演化历程:垃圾回收和运行时问题
- 垃圾回收2:垃圾收集算法
- 垃圾收集3: 垃圾回收器
- 垃圾回收算法(7)-分代回收算法
- JAVA 垃圾回收机制(二) --- GC回收具体实现
- 对象回收判定与垃圾回收算法-JVM学习笔记(1)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。