转载

【技术小说连载】我在JVM公司的那些年(八)——死里逃生

【技术小说连载】我在JVM公司的那些年(八)——死里逃生

小说连载系列是我第一次尝试的新的技术讲解方式,希望通过小说的形式将技术细节讲解清楚。

第一篇中长篇连载小说《我在JVM公司的那些年》,主要讲解JVM内部的一些原理,希望大家能够喜欢,多多支持。

郑重声明:小说人物和故事情节均是原创,未经同意禁止任何形式的转载,侵权将进入法律程序。大佬除外。

欢迎大家转发文章,谢谢!

本节知识点预告:finalize方法。

大家好,我叫小史,是一个非科班程序员 …… 哦,不,在这部小说中,我是一个 java 对象。

前情回顾:

【技术小说连载】我在JVM公司的那些年(一)——奇怪的面试

【技术小说连载】我在JVM公司的那些年(二)——残酷的制度

【技术小说连载】我在JVM公司的那些年(三)——恐怖的垃圾回收

【技术小说连载】我在JVM公司的那些年(四)——工位调整

【技术小说连载】我在JVM公司的那些年(五)——主动出击

【技术小说连载】我在JVM公司的那些年(六)——智斗黑老大

【技术小说连载】我在JVM公司的那些年(七)——玉石俱焚

我就像抓住了救命稻草,赶紧问吕老师:“什么方法?”

吕老师:“这是一个非常古老的方法了,知道这个方法的人不多,而且现在公司也不推荐大家这样做。但是你现在情况特殊,也许可以一试。”

我:“哎呀我的吕老师,你就别卖关子了,赶紧告诉我吧。”

吕老师凑到我耳朵旁:“只需如此如此 ……

我疑惑地看着他:“这能行吗?”

吕老师稳如狗:“放心吧,没问题的。”

听了吕老师的建议,我赶紧秘密找到师兄,把吕老师跟我说的方法一五一十告诉了师兄,并请他帮忙。

师兄也很惊讶:“还有这种方法?这能行吗?”

我表面也稳如狗:“放心吧,没问题!”

但是实际上我内心慌得一批。

又是垃圾回收

这一刻终于到来,公司停止了所有业务,垃圾回收器还是像往常一样无情。

没有人引用我了,我自然没有在可达性分析的引用链中,我要被回收了,但是就在这时,垃圾回收器开口说话了。

垃圾回收器:这个对象,小史,他 覆盖了finalize方法 ,先别忙着把他赶出公司,先押送地牢。其他人都赶出公司吧!

一切都在计划中, 只要覆盖finalize方法,并且这个方法从来没被执行过,垃圾回收器就不会马上把你赶出公司 ,而是会把你放到地牢。

我跟着警卫来到了地牢,说是地牢,其实我一看就知道, 这是一个队列 ,里面的人都排队等着一个人。

过一会儿,这个人过来了,他是一个 低优先级线程 ,他的工作就是 执行我们这个队列中每个人的finalize方法

我和师兄早就商量好了, 在finalize方法中,我让师兄重新引用了我 ,这下我又有引用了,我知道已经大功告成,只需静静地等待出去的时机就行。

另一边,黑老大一看我已经没有在工位上,以为已经把我弄出了公司,满意地去找下家公司去了。只是他没想到,我并没有被赶出公司,而是在地牢里伺机而动。

又一次垃圾回收到来了,垃圾回收器再次通过可达性分析算法检查我们的引用,这次我已经在引用链中了,于是,我又回到了我自己的工位。

(未完待续……)

到此,小史终于彻底搞定了黑老大,他在JVM公司中还会遇到什么问题? 欲知后事如何,请听下回分解。

小结

现在我们不推荐在 finalize 方法中去释放资源,因为它什么时候会被调用是不确定的

下节知识点预告:老年代

第一次尝试写技术小说,如果你喜欢这种形式,麻烦动动手指转发一下,你不经意间的动作,可能就会给大家带来一部伟大的技术小说。

【技术小说连载】我在JVM公司的那些年(八)——死里逃生

原文  http://mp.weixin.qq.com/s?__biz=MzIzMTE1ODkyNQ==&mid=2649411816&idx=1&sn=f90d81c3f18675427d782db8ea5870ad
正文到此结束
Loading...