历史记录
清空历史记录
    首页 > 电脑软件 > 自己动手写java虚拟机 张秀宏pdf扫描版

    自己动手写java虚拟机 张秀宏pdf扫描版

    • 软件大小:4.28M
    • 软件版本:
    • 软件类型:国产软件
    • 软件分类:电脑软件
    • 软件语言:简体中文
    • 更新时间:2026-01-18
    • 安全检测:无插件360通过腾讯通过金山通过瑞星通过小红伞通过

    • 软件评分:

    普通下载

    手机扫一扫快捷方便下载
    我得说,这本书真的挺有意思的,它叫《自己动手写java虚拟机》,作者是张秀宏。我觉得它跟市面上很多讲JVM的书都不一样,因为它不是那种干巴巴地给你念规范或者分析源码,而是带着你一步步用Go语言去真正实现一个JVM。你想啊,光看书哪有自己动手敲代码来得深刻?这本书就是让你从零开始,用不到一万行代码构建出JVM的基本模型,这种实战的感觉真的太棒了,能让你不仅知道JVM是干什么的,还知道它是怎么干出来的。 全书一共11章,内容安排得特别循序渐进。一开始从安装环境和写个命令行工具开始,让你先找找感觉。然后就开始深入核心了,比如怎么搜索class文件、解析class文件的结构,这部分我觉得对理解Java程序怎么被加载特别有帮助。接着它会带你实现运行时数据区,像线程栈、操作数栈这些,这可是JVM的骨架啊。最精彩的是第5章,它会让你实现指令集和解释器,这可是JVM的心脏,能亲手把150多条指令跑起来,那种成就感简直了。后面几章还会讲到类和对象、方法调用、数组字符串,甚至异常处理和System类的初始化,基本上把JVM的核心机制都覆盖到了。 我个人特别喜欢这种“知其然也知其所以然”的学习方式。通过自己写代码,那些原本在书上看起来很抽象的概念,比如栈帧、局部变量表,一下子就变得具体了。而且作者用Go语言来写,屏蔽了很多Java本身的繁琐细节,让重点更突出。我觉得对于想深入理解Java底层原理的开发者来说,这本书绝对是个宝藏,它让学习JVM变得不再枯燥,反而充满了探索的乐趣。如果你也对JVM内部机制好奇,不妨跟着这本书动手试试,绝对能收获满满。

    自己动手写java虚拟机是一本以实战模式描述JVM原理的书,由资深Java服务器开发工程师张秀宏编著,本书对JVM进行了大量研究,在书中深入浅出地分析了class文件的数据结构和JVM的基本原理,并使用Go语言用不到1万行的程序代码就实现了JVM的基本模型,是Java爱好者了解JVM实现原理的一本好书。实战才是最有效的掌握知识的手段,快快动手,实现属于自己的Java虚拟机吧!

    自己动手写java虚拟机

    内容介绍

    《自己动手写java虚拟机》是继深入理解Java虚拟机之后的又一经典著作,它一方面遵循Java虚拟机规范,一方面又独辟蹊径,不仅能让Java虚拟机的学习变得更加简单和有趣,而且能让你对Java虚拟机的原理认识更深入和更深刻!

    全书书摒弃了传统的以解读枯燥的Java虚拟机规范文档和分析繁琐的Java虚拟机源代码的方式来讲解Java虚拟机,取而代之的是,以实践的方式,引导读者如何从零开始构建和实现一个Java虚拟机,整个过程不仅能让读者做到对Java虚拟机知其然而且知其所以然,还能屏蔽大量不必要的繁琐细节,体会到实现过程中的成就感,让学习过程更加轻松、愉悦和高效。更重要的是,这种方式能引导读者更深入地认识和掌握Java虚拟机的工作原理。

    本书主要内容

    全书一共分为11章,各章内容安排如下:

    第1章:安装开发环境,讨论java命令,并编写一个类似Java的命令行程序。

    第2章:讨论Java虚拟机如何搜索class文件,实现类路径。

    第3章:讨论class文件结构,实现class文件解析。

    第4章:讨论运行时数据区,实现线程私有的运行时数据区,包括线程、Java虚拟机栈、栈帧、操作数栈和局部变量表等。

    第5章:讨论Java虚拟机指令集和解释器,实现解释器和150余条指令。

    第6章:讨论类、对象以及线程共享的运行时数据区,实现类加载器、方法区以及部分引用类指令。

    第7章:讨论方法调用和返回,实现方法调用和返回指令。

    第8章:讨论数组和字符串,实现数组相关指令和字符串池。

    第9章:讨论本地方法调用,实现Object.hashCode()等本地方法。

    第10章:讨论异常处理机制,实现athrow指令。

    第11章:讨论System类的初始化过程和System.out.println()的工作原理等,并对全书进行总结。

    自己动手写java虚拟机章节目录

    前言

    第1章 命令行工具 1

    1.1 准备工作 1

    1.2 java命令 4

    1.3 编写命令行工具 5

    1.4 测试本章代码 7

    1.5 本章小结 8

    第2章 搜索class文件 9

    2.1 类路径 9

    2.2 准备工作 10

    2.3 实现类路径 11

    2.4 测试本章代码 20

    2.5 本章小结 21

    第3章 解析class文件 23

    3.1 class文件 24

    3.2 解析class文件 25

    3.3 解析常量池 35

    3.4 解析属性表 50

    3.5 测试本章代码 61

    3.6 本章小结 63

    第4章 运行时数据区 65

    4.1 运行时数据区概述 66

    4.2 数据类型 67

    4.3 实现运行时数据区 68

    4.4 测试本章代码 81

    4.5 本章小结 83

    第5章 指令集和解释器 85

    5.1 字节码和指令集 86

    5.2 指令和指令解码 88

    5.2.1 Instruction接口 89

    5.2.2 BytecodeReader 91

    5.3 常量指令 92

    5.3.1 nop指令 92

    5.3.2 const系列指令 93

    5.3.3 bipush和sipush指令 94

    5.4 加载指令 94

    5.5 存储指令 95

    5.6 栈指令 96

    5.6.1 pop和pop2指令 96

    5.6.2 dup指令 97

    5.6.3 swap指令 98

    5.7 数学指令 98

    5.7.1 算术指令 98

    5.7.2 位移指令 99

    5.7.3 布尔运算指令 101

    5.7.4 iinc指令 102

    5.8 类型转换指令 102

    5.9 比较指令 103

    5.10 控制指令 108

    5.11 扩展指令 111

    5.12 解释器 114

    5.13 测试本章代码 118

    5.14 本章小结 120

    第6章 类和对象 121

    6.1 方法区 122

    6.2 运行时常量池 127

    6.3 类加载器 133

    6.4 对象、实例变量和类变量 136

    6.5 类和字段符号引用解析 141

    6.6 类和对象相关指令 144

    6.7 测试本章代码 156

    6.8 本章小结 160

    第7章 方法调用和返回 161

    7.1 方法调用概述 161

    7.2 解析方法符号引用 163

    7.3 方法调用和参数传递 166

    7.4 返回指令 169

    7.5 方法调用指令 170

    7.6 改进解释器 176

    7.7 测试方法调用 178

    7.8 类初始化 181

    7.9 本章小结 185

    第8章 数组和字符串 187

    8.1 数组概述 187

    8.2 数组实现 188

    8.3 数组相关指令 191

    8.4 测试数组 203

    8.5 字符串 204

    8.6 测试字符串 207

    8.7 本章小结 210

    第9章 本地方法调用 211

    9.1 注册和查找本地方法 212

    9.2 调用本地方法 213

    9.3 反射 215

    9.4 字符串拼接和String.intern()方法 225

    9.5 Object.hashCode()、equals()和toString() 231

    9.6 Object.clone() 233

    9.7 自动装箱和拆箱 235

    9.8 本章小结 238

    第10章 异常处理 239

    10.1 异常处理概述 239

    10.2 异常抛出 240

    10.3 异常处理表 241

    10.4 实现athrow指令 245

    10.5 Java虚拟机栈信息 248

    10.6 测试本章代码 251

    10.7 本章小结 252

    第11章 结束 253

    11.1 System类是如何被初始化的 253

    11.2 初始化System类 255

    11.3 System.out.println()是如何工作的 258

    11.4 测试本章代码 260

    11.5 总结 260

    附录 指令表 263

    网友评论

    共有 0条评论

    captcha 评论需审核后才能显示

    应用推荐

    游戏推荐