让大牛带你揭秘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模型、堆栈分配模型.类加载模型等。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,451评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,172评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,782评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,709评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,733评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,578评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,320评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,241评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,686评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,878评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,992评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,715评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,336评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,912评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,040评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,173评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,947评论 2 355

推荐阅读更多精彩内容