让大牛带你揭秘Java虚拟机:见证JVM设计原理与实现的真谛

文明需要创造,也需要传承。JVM作为一款虚拟机,本身便是技术之集大成者,里面包含方方面面的底层技术知识。抛开如今Java如日中天之态势不说,纯粹从技术层面看,JVM也值得广大技术爱好者深入研究。可以说,从最新的硬件特性,到最新的软件技术,只要技术被证明是成熟的,都会在JVM里面见到其踪影。

文章书内容总共分为10章的内容:第1章Java虚拟机概述、第2章Java执行引擎 工作原理:方法调用、第3章Java数据结构与面向对象、第4章Java字节码实战、第5章常量池解析、第6章类变量解析、第7章Java栈帧、第8章类方法解析、第9章执行引擎、第10章类的生命周期。

大家转发关注小编,私信小编“学习”得到获取方式吧!

JDK的每一次更新,从内部到核心类库,JVM都会及时引人这些最新的技术或者算法,这便是技术传承意义之所在。随着云计算、大数据、人工智能等最新技术的发展,Java 技术生态圈也日益庞大,JVM与底层平台以及与其他编程语言和技术的交互、交织日益深人,这些都离不开对JVM内部机制的深人理解。如果说以前在中间件与框架领域的大展身手,依靠的是Java语言层面的特性和技术,那么以后越来越多的技术红利将会因JVM层面之创新而得以显现。

被真相所蒙蔽,是一件痛苦的事。我们在一一个被层层封装的世界里进行开发和设计,操作系统、各种中间件与框架,将底层世界隐藏得结结实实。我们一方面享受着高级编程语言所带来的高效、稳定、快速的开发体验,然而另-方面,却又如同行走于黑暗之中。我们不知道路的下面是否有坑,即使有坑,可能也不知道如何排除。Java 的很多概念和技术,很多时候由于我们对底层机制的不了解,而让我们感到十分高深莫测,无法知其全貌。这种感觉非常痛苦,尤其是技术修炼到一定阶段的时候。

1-2

纸上得来终觉浅,绝知此事要躬行。即使从Java语言层面下探到JVM层面,但是若只囿于对JVM机制理论和概念上的理解,很多时候仍然觉得缺乏那种大彻大悟之感。计算机作为一门科学,与其他的科学领城-样, 不仅需要对其理论的理解,也需要能够去实证。例如爱因斯坦的相对论十分高深,但是通过对引力波和红移的观测,其变得形象和生动起来。

3-4

Java 的部分概念经过“口口相传”,似有过于夸大其技术神秘性之嫌,让人望而生畏。例如,与volatile关键字相关的内存可见性、指令乱序等概念,给人无比博大深奥的印象,但是如能抛开概念,直接看底层实现机制,并辅以具体的实验论证,则会形成深刻而彻底的认知。其实,这世界本来就很简单。在可观测的实验结果与可理解的底层机制面前,一切浮夸的概念都自然会现出原形。

因此,采用自底而上的技术研究之道,相比自顶而下的办法,便多了更多窥透本质的自信和平实。同一个底层概念,在不同的高级编程语言里,在概念、叫法上很少能够保持一致。采用自底而上的探索方法,能够揭开各种深奥概念的神秘面纱,还原一个清明简洁的世界。自然理解曲线也不会有大起大落。

6-7

研究JVM的过程,就是与大师们]进行精神沟通和心灵交流的过程,虽然过程会比较痛苦。研究诸如Linux、 JVM这样的底层程序,你能学习到大师级的理念,更能够见识到经无数牛人反复锤炼后的技术。天长日久的耳濡目染,终有一天你也会成为大师,你也会拥有大师级的眼光,你也会拥有开阔的胸怀。如同音乐家李健,人们如此喜欢他,并不仅仅是因为他歌唱得好,更多的是因为气质。而这种气质来自于博览群书,来自于对艺术的长久修炼。计算机从某种程度上而言,也是一门艺术,工程师和程序员们要想进化,对计算机艺术的修炼必不可少。与大师进行精神沟通,不仅能够修炼到计算机的艺术,更能直接感受并养成大师身上所具备的气质。

9-10

我不知道Java还能走多远,未来是否会被淘汰,但你不能因此就否定研究JVM的意义。JVM作为一款虚拟机,各种底层技术和理论都有涉及,若你能研究透彻,则能-通百通。例如,本人在研究过程中,也翻阅了诸如Python、JavaScript等高级面向对象语言虚拟机的机制,发现它们内部的整体思路都相差不大。同时, JVM本身在运行期干了- -部分C或C++语言编译器所干的事,例如符号解析、链接、面向对象机制的实现等,通过对这些机制的分析,从来没有研究过C/C++编译器原理的我,基本也能够猜出C/C++编译器可能的实现方式,后来翻阅了相关资料,果不其然。理解编译与虚拟机的实现机制是一方面, 另一方面,通过深挖JDK核心类库的内部实现,则能够深刻理解线程、并发、/0等比较高深的技术内幕。例如Java NIO,何谓VMA?何谓内核映射?若想真正彻底理解这些概念,不从底层人手,恐怕很难有一一个具象化的认知。

市面上JVM的书有很多,但是呢,小编认为这绝对是那最经典的那一本,得之幸之,相见恨晚!

大家转发关注小编,私信小编“资料”得到获取方式吧!

总之,研究JVM,是一件非常能够提升开发者内功的事情,未来无论出现什么样的新语言、新技术、新概念,你总是能够不被表面的东西所迷惑,而是能够透过层层封装,看清事物的本质,你总是能够以极低的学习成本,迅速理解新的东西。从一个更为广阔的视角,使用发散的思维去看,不一定非要研究JVM才能有很大收获,研究其他技术的底层,会有异曲同工之妙。

而只不过恰好生在了这个年代,这个Java语言大行其道的年代,所以就恰好对其做了一个比较深人的研究而已。工具有时空疆界,而技术思想则没有,其总能穿越千万年的时空,无限延伸。JVM涉及的知识面十分广阔,因此限于篇幅,本书并未覆盖JVM的全部内容。

总体而言,本书重点描述了JVM从启动开始到完成函数执行的详细机制,读完本书相信你一定能够明白JVM执行Java程序的底层机制,能够明白JVM将Java语言一步步转换为CPU可执行的机器码的内部机制,以及为此而制定的各种规范的实现之道,例如oop-klass模型、堆栈分配模型.类加载模型等。

你可能感兴趣的:(让大牛带你揭秘Java虚拟机:见证JVM设计原理与实现的真谛)