BATJ大厂架构师带你揭秘Java虚拟机—JVM设计原理与实现
前言
从Java诞生至今已有二十余年,基于虚拟机的技术屏蔽了底层环境的差异,“一次编译,随处运行”的思想促进了整个IT上层技术应用产生了翻天覆地的变化。
Java作为服务端应用语言的首选,确实大大降低了学习和应用的门槛。
现实生活中,绝大多数Java程序员对于虚拟机的原理和实现了解并不深人,也似乎并不那么关心。而随着互联网的极速发展,现在的Java服务端应用需要应对极高的并发访问和大量的数据交互,从机制和设计原理上了解虚拟机的核心原理和实现细节显然能够帮助Java程序员编写出更高效优质的代码。
JVM设计原理及实现
JVM作为一款虚拟机,各种底层技术和理论都有涉及,若你能研究透彻,则能一通百通。
本人在研究过程中,也翻阅了诸如Python、JavaScript等高级面向对象语言虚拟机的机制,发现它们内部的整体思路都相差不大。同时,JVM本身在运行期干了一部分C或C+ +语言编译器所干的事,例如符号解析、链接、面向对象机制的实现等,通过对这些机制的分析,从来没有研究过C/C+ +编译器原理的我,基本也能够猜出C/C++编译器可能的实现方式,后来翻阅了相关资料,果不其然。理解编译与虚拟机的实现机制是一方面, 另一方面, 通过深挖JDK核心类库的内部实现,则能够深刻理解线程、并发、I/O等比较高深的技术内幕。例如Java NIO,何谓VMA?何谓内核映射?若想真正彻底理解这些概念,不从底层人手,恐怕很难有一一个具象化的认知。
总之,研究JVM,是一件非常能够提升开发者内功的事情,未来无论出现什么样的新语言、新技术、新概念,你总是能够不被表面的东西所迷惑,而是能够透过层层封装,看清事物的本质,你总是能够以极低的学习成本,迅速理解新的东西。
从一个更为广阔的视角,使用发散的思维去看,不一定非要研究JVM才能有很大收获,研究其他技术的底层,会有异曲同工之妙。而我只不过恰好生在了这个年代,这个Java语言大行其道的年代,所以就恰好对其做了一个比较深人的研究而已。工具有时空疆界,而技术思想则没有,其总能穿越千万年的时空,无限延伸。
第1章Java虚拟机概述
第2章Java执行引擎工作原理:方法调用
第3章Java数据结构与面向对象
第4章Java字节码实战
第5章常量池解析
第6章类变量解析
第7章Java栈帧
第8章类方法解析
第9章类方法解析
第10章类的生命周期
目录
由于平台篇幅限制,同时也为了大家更好的阅读,小编把JVM相关的资料都整理好了,有感兴趣的程序员朋友,可以帮忙转发文章后,关注,私信回复【学习】来获取相关文档,视频,面试资料