随着互联网的极速发展,现在的Java 服务端应用需要应对极高的并发访问和大量的数据交互,从机制和设计原理上了解虚拟机的核心原理和实现细节显然能够帮助Java程序员编写出更高效优质的代码。
JVM作为一款虚拟机,本身便是技术之集大成者,里面包含方方面面底层技术知识。纯粹从技术层面看,JVM也值得广大技术爱好者深入研究。可以说,从最新的硬件特性,到最新的软件技术,只要技术被证明是成熟的,都会在JVM里面见到其踪影。JDK的每一次更新,从内部到核心类库,JVM都会及时引入这些最新的技术或者算法,这便是技术传承意义之所在。随着云计算、大数据、人工智能等最新技术的发展,Java技术生态圈也日益庞大, JVM与底层平台以及与其他编程语言和技术的交互、交织日益深入,这些都离不开对JVM内部机制的深入理解。如果说以前在中间件与框架领域的大展身手,依靠的是Java语言层面的特性和技术,那么以后越来越多的技术红利将会因JVM层面之创新而得以显现。
从源码角度解读HotSpot的内部实现机制,本版本主要包含三大部分——JVM数据结构设计与设计、执行引擎机制及内存分配模型。
第1章Java虚拟机概述
- 1.1从机器语言到Java——詹爷, 你好
- 1.2兼容的选择:一场生产力的革命
- 1.3中间语言翻译
- 1.4神奇的指令
- 1.5本章总结
第2章Java执行引擎工作原理:方法调用
- 2.1方法调用
- 2.2 JVM的函数调用机制
- 2.3函数指针
- 2.4 CallStub函数指针定义
- 2.5_ call stub_ entry例程
- 2.6本章总结
第3章Java数据结构与面向对象
- 3.1从Java算法到数据结构
- 3.2数据类型简史
- 3.3 Java数据结构之偶然性
- 3.4 Java类型识别
- 3.5大端与小端
- 3.6本章总结
第4章Java字节码实战
- 4.1字节码格式初探
- 4.2魔数与版本
- 4.3常量池
- 4.4访问标识与继承信息
- 4.5字段信息
- 4.6方法信息
- 4.7本章回顾
第5章常量池解析
- 5.1常量池内存分配
- 5.2 oop-klass模型
- 5.3常量池kass模型(1)
- 5.4常量池kass模型(2)
- 5.5常量池解析
- 5.6本章总结
第6章类变量解析
- 6.1类变量解析
- 6.2偏移量
- 6.3从源码看字段继承
- 6.4本章总结
第7章Java栈帧
- 7.1 entry_ point例程生成
- 7.2局部变量表创建
- 7.3堆栈与栈帧
- 7.4 JVM的栈帧
- 7.5栈帧深度与slot复用
- 7.6最大操作数栈与操作数栈复用
- 7.7本章总结
第8章类方法解析
- 8.1方法签名解析与校验
- 8.2方法属性解析
- 8.3创建methodOop
- 8.4 Java方法属性复制
- 8.5 < clinit>与<init>
- 8.6查看运行时字节码指令
- 8.7 vtable
- 8.8本章总结
第9章执行引擎
- 9.1执行引擎概述
- 9.2取指
- 9.3译码
- 9.4栈顶缓存
- 9.5栈式指令集
- 9.6操作数栈在哪里
- 9.7栈帧重叠
- 9.8 entry. point例程机器指令
- 9.9执行引擎实战
- 9.10字节码指令实现
- 9.11本章总结
第10章类的生命周期
- 10.1类的生命周期概述
- 10.2类加裁
- 10.3类的初始化
- 10.4类加裁器
- 10.5类实例分配
- 10.6本章总结
其实Java虚拟机也没有那么难,jvm的实现与原理都在这里展示了,祝大家前程似锦~