作者:看山
写这篇读后感的缘由是《深入理解Java虚拟机》第三版即将面世了,先拜谢周教授,相信很多人得益于周教授的这本书。
14年入手的第二版,当时准备跳槽,需要理论知识武装一下。于是囫囵吞枣的扫了第一遍,就两个字——不懂。那种感觉就仿佛身在雾中,一切都看不通透,感觉浑身不舒服,想来是自己水平太渣了。
那个时间点是在工作2年,加上大学4年,接触Java将近6年的时间,在项目组内基本上属于横着走,跟同学吹牛,“只要能说明白需求,我就能做出来”。结果,一本关于Java虚拟机的书,居然还看不懂,真是倍受打击啊。
现在想来,听过我吹牛的同学心中一定是各种鄙视,所谓“无知者无畏”,所以才敢吹牛。这就是认知边界在作怪了,知道的越少,以为世界就越简单,也就越以为自己无所不能了。
我属于学渣,通常碰到这种看不懂的书,一般就扔边上吃灰了。碰巧是当时刚搬家,新住处网络奇差,ping值一般1000以上,玩LOL时刚冲锋就掉线,风骚走位玩不了,也就弃玩了。闲来无事,就打算再翻翻这本让自己没面子的书。
第二次读的时候就挑着看,想的是,反正看不懂,看多少算多少,能看明白就是赚了(真是感谢当时自己的佛系心态)。
这本书分了几个部分,各部分可以独立学习,就挑了第二部分,这部分主要分为:JVM的自动内存管理、常见的垃圾收集算法以及垃圾收集器的特点和工作原理、常见虚拟机监控与故障处理工具的原理和使用方法。这部分比较偏上层应用,更像是数据结构和算法,抛开了JVM协议,更适合当时的自己(自己当时也就能看明白这一部分)。
静下心来慢慢学的时候才发现,书中的知识还是比较容易理解的,而且能够和工作中的经历联系起来。比如讲“虚拟机内存区域的划分原理”和“各种内存溢出异常产生的原因”这两块的时候,就想到工作中各种OOM的经历。前面说了,当时在组里横着走(外包公司),碰到问题就得往前冲,所以也经常会碰到这种解决不了的问题。看到这本书,一下粘贴来的解决方法也就明白了。
第二遍的感觉,就仿佛是雾散云消,一切通透了。
Java目前是编程语言使用人数排名第一的,而且是连续多年第一。而 JVM 又是 Java 赖以运行的根本,所以能够了解JVM的原理,对于Java学习还是很有帮助的。从14年书中将的JDK 7,到现在JDK 13即将发布稳定版,JDK 8的Lambda、JDK 9的模块化、JDK 10的var变量、JDK 11的ZGC,Java的世界进入了高速发展阶段。借着这本书第三版的面世,再读一遍基于JDK 12的JVM虚拟机原理,也算是跟上时代的脚步,别固步自封,犯刚毕业时犯下的错误。
立个flag,等学习完第三版之后再来拔旗。
推荐阅读
《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》
推荐语:这是一部从工作原理和工程实践两个维度深入剖析JVM的著作, 自2011年上市以来,前两个版本累计印刷36次,销量超过30万册,大厂面试最佳参考手册,进阶架构师必读、Java优化神书,这些标签成就了它成为原创计算机图书领域不可逾越的丰碑。
第3版在第2版的基础上做了重大修订,内容更丰富、实战性更强:根据新版JDK对内容进行了全方位的修订和升级,围绕新技术和生产实践新增逾10万字,包含近50%的全新内容,并对第2版中含糊、瑕疵和错误内容进行了修正。
你与世界
只差一个
公众号