写点什么

还不懂 JVM 的设计原理与实现?赶紧跟着字节大牛“身临其境”

用户头像
周老师
关注
发布于: 2020 年 09 月 04 日
还不懂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获取



发布于: 2020 年 09 月 04 日阅读数: 45
用户头像

周老师

关注

精通java热衷于分享java领域资料,感谢支持 2020.06.09 加入

还未添加个人简介

评论

发布
暂无评论
还不懂JVM的设计原理与实现?赶紧跟着字节大牛“身临其境”