#我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升

#我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升

者:徐凌峰

作为周老师的忠实粉丝,其实一直在微博上关注这本书第三版的消息,之前接触到这本书的时候是从第二版“小蓝“开始的,那会儿搜索JVM相关资料时,基本上都会推荐到这本书,毫不夸张地说,至少在国内,《深入理解Java虚拟机》这本书就是学习JVM的最好资料了。

接下来,我来介绍一下自己跟这本书的故事吧。

学生时代:

我的大学专业是数学,在刚开始转行学习Java的时候,最开始有一个很模糊的概念,简单知道通过Java虚拟机可以实现“一处编写,多处执行”的功能。但是,因为是刚刚处于Java入门阶段,总感觉JVM是一个很高端的概念,基本上接触不到,只知道安装一个JDK,我的“Hello,World”即可跑起来。于是学了常用框架就想着先去找个工作,结果面试的时候被问到JVM的相关问题时,哑口无言。后来便去网上找相关资料,发现网友都在推荐周老师的《深入理解Java虚拟机-JVM高级特性与最佳实践》这本书,于是乎赶紧购买了一本,买来之后通读了一遍,当然那会儿仅仅记住了一些内存模型和结构图之类的,不过也是帮我顺利通过了面试.成功找到了一份工作。

工作后:

随着进入实际的工作中,才发现JVM相关知识的实际作用。特别是项目中偶尔会发生的一些OOM异常、GC日志等,最开始查看起来真是一头雾水,只能看着大佬们通过各种命令工具成功定位解决,然后发现成功定位后要修复这些问题时,就必须掌握JVM的内存结构和运行原理,因此我再度拾起了周老师的这本书。重点关注书中一些实战部分的章节,学习生产环境下对JVM的问题定位。但是实际环境中也不会有这么多OOM的问题,于是我在测试环境中自己调整JVM的启动参数来模拟,经过一番理论加实战的练习,对JVM的问题也有了一定的了解,不再是两眼一抓瞎的状态了。

随着工作年限的增加,对Java的理解也变深了。有时候会思考一些更深的问题了,例如new Object() 这个指令的底层究竟发生了什么,一个类是如何加载到虚拟机里去的,或者一个写好的类在运行时是如何动态的修改它的一些代码的。这些问题,其实在深入研究JVM运行机制后都可以找到答案,在本书中就有他们的原理及解答。

有了周老师这本书的帮助,我的Java技术水平有了一个本质的提升。关于JVM有了更加清晰的认识,通过不断的研究学习这本书,我对于目前线上服务的内存特别敏感。对于各个垃圾收集器的使用也很熟练,有事没事的就去看线上服务的垃圾回收情况和GC日志.对于jinfo、jstack、jmap以及jstat等内存调优命令也是比较熟悉,并且也能熟练的使用mat、arthas等工具。再也不是曾经那个一无所知的懵懂少年了。

周老师的《深入理解Java虚拟机-JVM高级特性与最佳实践》第三版已经出版,看了目录之后,感觉在第二版的基础上进行了很多更新,结合了当前最新的JDK13 EA,给我们讲解全新的JVM相关特性与技术,带领我们与时俱进,真正做到了实战与技术的相结合。

总结:

毫不夸张地说,这本书是Java开发者必备的技术图书,也是我们大多数同学的JVM启蒙书籍,这本书使我们更加系统的接触到了JVM相关的特性与知识。这么经典的书籍,作者也是一直保持着更新,之前第二版用的JDK7或许有一些过时,目前这本第三版基于JDK12和JDK13 EA所写,能够让读者了解到最新的JVM知识,新增的一些垃圾收集器,以及作者更加丰富的经验和沉淀。入手这本书无论是丰富自身知识,提高工作能力,还是应付面试顺利进大厂,都是无比的超值。

推荐阅读

《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》

推荐语:这是一部从工作原理和工程实践两个维度深入剖析JVM的著作, 自2011年上市以来,前两个版本累计印刷36次,销量超过30万册,大厂面试最佳参考手册,进阶架构师必读、Java优化神书,这些标签成就了它成为原创计算机图书领域不可逾越的丰碑。

第3版在第2版的基础上做了重大修订,内容更丰富、实战性更强:根据新版JDK对内容进行了全方位的修订和升级,围绕新技术和生产实践新增逾10万字,包含近50%的全新内容,并对第2版中含糊、瑕疵和错误内容进行了修正。

#我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升

你与世界

只差一个

公众号