是时候深入了解JVM了

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

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

直到…一次OOM的出现。

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

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

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

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

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

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

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

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

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

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

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

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

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

是时候深入了解JVM了

也许,对你,深入理解Java虚拟机,它就够了。
为了方便能快速找他它,留下一个码 ->
是时候深入了解JVM了

Java的世界还有更多值得探索的地方,未来的路还很长。