#我与Java虚拟机的故事#连载13:有这本书就够了

#我与Java虚拟机的故事#连载13:有这本书就够了

作者:蒋超

刚开始接触Java时,对JVM是无知的,确实,是无感知的。因为Java的设计者,为了降低语言的复杂度,屏蔽实现细节,将很多背后的操作"隐藏"了。

在很长时间里,不需要了解Java虚拟机,也能写出可以运行的代码,甚至完美地运行一个Java程序。什么垃圾回收机制、类加载机制统统都抛之脑后,好像也没人说你不懂Java。

直到…一次OOM的出现。

解决Bug的能力与手段,决定了你想成为程序员还是好程序员。

我开始了漫长的探索之旅…

对于深入分析OOM,网上能找的资料太多也太杂,对于现象和解决方法都有比较多的介绍,但是能谈到原理的,又能讲清楚的少之又少。

直到我看到了这本书《深入理解Java虚拟机》,才发现,JVM东西太多了。在不知道这些内容的时候,并不会对我写的代码造成什么影响,有些运行参数没有配置也不会出问题,或者复制别人的配置好的运行参数,都能"蒙混过关"。当真正深入JVM,才发现,原来还有完全不一样的另一个世界。

虚拟机对Java开发开发者来说,太底层了,也太难理解了,很多时候,对底层的了解不足以应对现有遇到的场景。

在大学期间,我在图书馆遇到了《深入理解Java虚拟机》这本书,第一次读,很难有一个清晰的认识。因为对于一门语言,实战的效果远大于其他任何方式对语言的认知。但是《深入理解Java虚拟机》偏向理论,甚至里面的实战内容,在当时也不太能理解这样做的方式。

工作中,遇到了越来越多的问题,也更加重视底层原理与整体设计,就想着对整个Java体系进行重新知识梳理。于是,就采用了我觉得对知识理解最系统的方式——看书。

基础的Java web、高并发应对处理设计、分布式理论、缓存处理、新型的SpringCloud、架构设计,还有对Java底层的JVM理解。

每本书都是不同的领域与视角,对Java的描述方向各不相同,毕竟在这个行业4年了,工作经验积累的同时,也需要不断自我充电。

《深入理解Java虚拟机》 是一本对JVM讲得比较深入的书,甚至整个行业对JVM讲得比较好的书籍也没几本。但是客观地讲,这本书对于Java新人来说,是不太友好的。为了能深入到JVM的底层原来,需要比较多的知识背景,如果实践经历不够多,也比较难理解JVM这样设计的好处。当然,在对Java本身有一定理解之后,这本书将对之后代码质量有一个质的飞越,线上处理问题也能更得心应手。

要是在读源码,比如Spring的源码调式时,遇到了不能理解的设计理念,或者对于高并发的理解不够系统,那么这本书将会解释很多的疑问。

《深入理解Java虚拟机》第一版写与2011年,时隔两年之后的2013年,作者对原书进行升级《深入理解Java虚拟机》第二版。但是2014年发布的Java8,更具有划时代的意义,目前公司使用的也正是Java8,对于原书的升级,这么多年来一直没有消息。甚至在知乎上有这样的讨论 《深入理解Java虚拟机》过时了吗?

如今,作者终于对原书进行升级,直接过度到Java12,从书的目录看,有较大改变,精华部分依旧在,增加了一些新的设计理念。

也许,对你,深入理解Java虚拟机,有它就够了。

推荐阅读

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

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

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

#我与Java虚拟机的故事#连载13:有这本书就够了

你与世界

只差一个

公众号