Java程序到底是如何运行的?如何写出更高效的Java代码?
前言
Java程序到底是如何运行的?如何写出更高效的Java代码....?这些问题归根结底都要从JVM中去寻找答案。
我不知道Java 还能走多远,未来是否会被淘汰,但你不能因此就否定研究JVM的意义。JVM作为一款虚拟机,各种底层技术和理论都有涉及,若你能研究透彻,则能一通百通。
文明需要创造,也需要传承。JVM作为一款虚拟机,本身便是技术之集大成者,里面包含得广大技术爱好者深人研究。可以说,从最新的硬件特性,到最新的软件技术,只要技术被证明是成熟的,都会在JVM里面见到其踪影。JDK的每- -次更新,从内部到核心类库,JVM都会及时引入这些最新的技术或者算法,这便是技术传承意义之所在。
本书是一本通过深入结合HotSpot源代码来解释Java虚拟机工作机理的书籍。这是一本优秀的技术工具书,可以让阅读者更加深刻地理解虚拟机的原理和细节,值得每位具有极客精神、追求细节的优秀程序员反复阅读和收藏。
思维导图
目录
本书从源码角度解读HotSpot的内部实现机制,本版本主要包含三大部分一JVM数据结构设计 与实现、执行引擎机制及内存分配模型。本书通过直接对源代码的分析,从根本上梳理和澄清Java领域中的关键概念和机制。
第1章 Java虚拟机概述
- 1.1 从机器语言到Java——詹爷,你好
- 1.2 兼容的选择:一场生产力的革命
- 1.3 中间语言翻译
- 1.4 神奇的指令
第2章 Java执行引擎工作原理:方法调用
- 2.1 方法调用
- 2.2 JVM的函数调用机制
- 2.3 函数指针
- 2.4 CallStub函数指针定义
- 2.5 _call_stub_entry例程
第3章 Java数据结构与面向对象
- 3.1 从Java算法到数据结构
- 3.2 数据类型简史
- 3.3 Java数据结构之偶然性
- 3.4 Java类型识别
- 3.5 大端与小端
第4章 Java字节码实战
- 4.1 字节码格式初探
- 4.2 魔数与版本
- 4.3 常量池
- 4.4 访问标识与继承信息
- 4.5 字段信息
- 4.6 方法信息
第5章 常量池解析
- 5.1 常量池内存分配
- 5.2 oop-klass模型
- 5.3 常量池klass模型(1)
- 5.4 常量池klass模型(2)
- 5.5 常量池解析
需要领取这份阿里大佬整理的《JVM设计原理与实现》的麻烦点赞小编这篇文章,点个关注然后私信我【JVM】即可。
第6章 类变量解析
- 6.1 类变量解析
- 6.2 偏移量
- 6.3 从源码看字段继承
第7章 Java栈帧
- 7.1 entry_point例程生成
- 7.2 局部变量表创建
- 7.3 堆栈与栈帧
- 7.4 JVM的栈帧
- 7.5 栈帧深度与slot复用
- 7.6 最大操作数栈与操作数栈复用
第8章 类方法解析
8.1 方法签名解析与校验
8.2 方法属性解析
8.3 创建methodOop
8.4 Java方法属性复制
8.5 <clinit>与<init>
8.6 查看运行时字节码指令
8.7 vtable
第9章 执行引擎
- 9.1 执行引擎概述
- 9.2 取指
- 9.3 译码
- 9.4 栈顶缓存
- 9.5 栈式指令集
- 9.6 操作数栈在哪里
- 9.7 栈帧重叠
- 9.8 entry_point例程机器指令
- 9.9 执行引擎实战
- 9.10 字节码指令实现
第10章 类的生命周期
- 10.1 类的生命周期概述
- 10.2 类加载
- 10.3 类的初始化
- 10.4 类加载器
- 10.5 类实例分配
JVM涉及的知识面十分广阔,因此限于篇幅,本书并未覆盖JVM的全部内容。
总体而言,本书重点描述了JVM从启动开始到完成函数执行的详细机制,读完本书,相信你一定能够
明白JVM执行Java程序的底层机制,能够明白JVM将Java语言-步步转换为CPU可执行的机器码的
内部机制,以及为此而制定的各种规范的实现之道。
需要领取这份阿里大佬整理的《JVM设计原理与实现》的麻烦点赞小编这篇文章,点个关注然后私信我【JVM】即可。