从Java诞生至今已有二十余年,基于虚拟机的技术屏蔽了底层环境的差异,一次编译,随处运行的思想促进了整个IT上层技术应用产生了翻天覆地的变化。Java作为服务端应用语言的首选,确实大大降低了学习和应用的门槛。现实生活中,绝大多数Java程序员对于虚拟机的原理和实现了解并不深入,也似乎并不那么关心。而随着互联网的极速发展,现在的Java服务端应用需要应对极高的并发访问和大量的数据交互,从机制和设计原理上了解虚拟机的核心原理和实现细节显然能够帮助Java程序员编写出更高效优质的代码。
文明需要创造,也需要传承。JVM作为一款虚拟机,本身便是技术之集大成者,里面包含方方面面的底层技术知识。抛开如今Java如日中天之态势不说,纯粹从技术层面看,JVM也值得广大技术爱好者深入研究。可以说,从最新的硬件特性,到最新的软件技术,只要技术为证明是成熟的,都会在JVM里面见到其踪影。JDK的每一-次更新,从内部到核心类库,JVM都会及时引入这些最新的技术或者算法,这便是技术传承意义之所在。随着云计算、大数据、人的发展工智能等最新技术的发展,Java技术生态圈也日益庞大,JVM与底层平台以及与其他编程语言和技术的交互、交织日益深入,这些都离不开对JVM内部机制的深入理解。如果说以前在中间的话件与框架领域的大展身手,依靠的是Java语言层面的特性和技术,那么以后越来越多的技术红利将会因JVM层面之创新而得以显现。
Java从1995年发布以后,已经发展成为一门流行的编程语言。业界也有无数的书介绍Java语言的方方面面。但是,这本书不仅讲解了Java虚拟机的内部实现机制,还深入分析了为什么要这么实现。每一种技术设计的背后,都有其必然性。能够知其然、并知其所以然,才能透过现象看本质,举一反三,实现技术升华。亚飞有多年的Java实践,尤其是在菜鸟网络,需要具备处理很多高并发、大型工程的架构经验,相信他在书中会有更多的视角分享给读者。
全书共十章,下面跟着小编一起来看一下。
目录:
第1章Java虚拟机概述
本章摘要
- Java语言产生的历史背景
- 编程语言跨平台的实现
- 中间语言的实现
第2章Java执行引擎工作原理:方法调用
本章摘要
- JVM如何进行方法调用
- JVM如何分配方法栈
- JVM 如何取指
- JVM如何执行逻辑运算
第3章Java数据结构与面向对象
本章摘要
- 数据结构是什么,为什么需要数据结构
- 数据结构的发展历史以及与算法的关系
- Java 数据结构的实现机制
- Java 数据结构——面向对象之技术必然性与偶然性
- Java 数据结构的字节码格式分析
- 大端与小端
第4章Java字节码实战
本章摘要
- Java字节码的二进制格式
- Java字节码的魔数与版本
- Java字节码的常量池
- Java字节码的类继承
- Java字节码的字段存储
- Java字节码的方法格式
第5章常量池解析
本章摘要
- Java字节码常量池的内存分配链路
- oop-klass模型
- 常量池的解析原理
第6章类变量解析
本章摘要
- Java类变量解析的原理
- 计算机基础——偏移量 与内存对齐
- Java类与字段的对齐与补白
- Java字段的继承机制
- 使用HSDB查看运行时的Java类结构
第7章Java栈帧
本章摘要
- entry_ point 例程
- 局部变量表创建的机制
- 堆栈与栈帧的概念
- JVM栈帧创建的详细过程
- slot大小到底是多大
- slot复用
- 操作数栈复用与深度
第8章类方法解析
本章摘要
- Java方法签名解析
- Java方法的code属性解析
- LVT与LVTT
- method创建
- Java方法的字节码指令解析
- <clini>0方法与<iniD>方法
- 使用HSDB查看运行时的字节码指令
- vtable的概念与机制
第9章执行引擎
本章摘要
- JVM的取值与译码机制
- 栈顶缓存原理
- 操作数栈与栈帧重叠技术
- JVM指令集特点与实现
第10章类的生命周期
本章摘要
- 类的生命周期
- 类加载的内部实现及触发
- 类的初始化
- 类加载器的本质
- 类实例分配
名家推荐:
领取文章中阿里架构师编写的668页Java虚拟机笔记,只需要: