还不懂 JVM 的设计原理与实现?赶紧跟着字节大牛“身临其境”
java虚拟机
虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java虚拟机屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
内容简介
本书从源码角度解读HotSpot的内部实现机制,本版本主要包含三大部分一JVM数据结 构设计与实现、执行引擎机制及内存分配模型。数据结构部分包括Java字节码文件格式、常量池解析、字段解析、方法解析。每一部分都给出详细的源码实现分析,例如字段解析一章,从源码层面详细分析了Java字段重排、字段继承等关键机制。再如方法解析一章,给出了Java多态特性在源码层面的实现方式。本书通过直接对源代码的分析,从根本上梳理和澄清Java领域中的关键概念和机制。
执行引擎部分包括Java方法调用机制、栈帧创建机制、指令集架构与解释器实现机制。这一话题是全书技术含量最高的部分,需要读者具备-定的汇编基础。不过千万不要被“汇编”这个词给吓着,其实在作者看来,汇编相比于高级语言而言,语法非常简单,语义也十分清晰。执行引擎部分重点描述Java源代码如何转换为字节码,又如何从字节码转换为机器指令从而能够被物理CPU所执行的技术实现。同时详细分析了Java函数堆栈的创建全过程,在源码分析的过程中,带领读者从本质上理解到底什么是Java函数堆栈和栈帧,以及栈帧内部的详细结构。
内存分配部分主要包括类型创建与加载、对象实例创建与内存分配,例如new关键字的工作机制,import关键字的作用,再如java.lang.ClassLoader.loadClass()接口的本地实现机制。
本书并不是简单地分析源码实现,而是在描述HotSpot内部实现机制的同时,分析了HotSpot如此这般实现的技术必然性。读者在阅读本书的过程中,将会在很多地方看到作者本人的这种思考。
全书共十章,目录如下:
由于篇幅限制小编,小编只在这里给大家展示目录及部分内容,有需要完整文档的程序猿(媛)可以帮忙转发+关注,添加助理vx:yunduoa2019获取
第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 类与字段的对齐与补白
0 Java 字段的继承机制
◎使用 HSDB查看运行时的Java类结构
第7章Java栈帧
本章摘要
◎entry. point例程
◎局部变量表 创建的机制
◎堆栈与栈帧的概念
◎JVM 栈帧创建的详细过程
◎slot大小到底是多大
◎slot复用
◎操作数栈复用与深度
第8章类方法解析
本章摘要
◎Java方法签名解析
◎Java方法的code属性解析
◎LVT 与LVTT
◎method 创建
◎Java 方法的字节码指令解析
◎<clinit>0方法 与<ini>0方法
◎使用 HSDB查看运行时的字节码指令
。vtable的概念与机制
第9章执行引擎
本章摘要
◎JVM 的取指与译码机制
。栈顶缓存原理
◎操作数栈与栈帧重叠技术
◎JVM 指令集特点与实现
第10章类的生命周期
本章摘要
◎类的生命 周期
。类加载的内 部实现及触发
◎类的初始化
◎类加载器的本质
◎类实例分配
由于篇幅限制小编,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!不会只有大纲和目录,有需要的程序猿(媛)可以帮忙转发+关注,添加助理vx:yunduoa2019获取
版权声明: 本文为 InfoQ 作者【周老师】的原创文章。
原文链接:【http://xie.infoq.cn/article/c91fe3c9f86f9cd0da2c910f6】。文章转载请联系作者。
评论