科技
类型
8.4
豆瓣评分
可以朗读
语音朗读
223千字
字数
2016-05-01
发行日期
展开全部
主编推荐语
从零开始,打造属于我们自己的Java虚拟机。
内容简介
本书是继《深入理解Java虚拟机》之后的又一经典著作,它一方面遵循《Java虚拟机规范》,一方面又独辟蹊径,不仅能让Java虚拟机的学习变得更加简单和有趣,而且能让你对Java虚拟机的原理认识更深入和更深刻!
本书摒弃了传统的以解读枯燥的Java虚拟机规范文档和分析繁琐的Java虚拟机源代码的方式来讲解Java虚拟机;取而代之的是,以实践的方式,引导读者如何从零开始构建和实现一个Java虚拟机;整个过程不仅能让读者做到对Java虚拟机知其然而且知其所以然,还能屏蔽大量不必要的繁琐细节,体会到实现过程中的成就感,让学习过程更加轻松、愉悦和高效。更重要的是,这种方式能引导读者更深入地认识和掌握Java虚拟机的工作原理。
目录
- 版权信息
- 前言
- 第1章 命令行工具
- 1.1 准备工作
- 1.1.1 安装JDK
- 1.1.2 安装Go
- 1.1.3 创建目录结构
- 1.2 java命令
- 1.3 编写命令行工具
- 1.4 测试本章代码
- 1.5 本章小结
- 第2章 搜索class文件
- 2.1 类路径
- 2.2 准备工作
- 2.3 实现类路径
- 2.3.1 Entry接口
- 2.3.2 DirEntry
- 2.3.3 ZipEntry
- 2.3.4 CompositeEntry
- 2.3.5 WildcardEntry
- 2.3.6 Classpath
- 2.4 测试本章代码
- 2.5 本章小结
- 第3章 解析class文件
- 3.1 class文件
- 3.2 解析class文件
- 3.2.1 读取数据
- 3.2.2 整体结构
- 3.2.3 魔数
- 3.2.4 版本号
- 3.2.5 类访问标志
- 3.2.6 类和超类索引
- 3.2.7 接口索引表
- 3.2.8 字段和方法表
- 3.3 解析常量池
- 3.3.1 ConstantPool结构体
- 3.3.2 ConstantInfo接口
- 3.3.3 CONSTANT_Integer_info
- 3.3.4 CONSTANT_Float_info
- 3.3.5 CONSTANT_Long_info
- 3.3.6 CONSTANT_Double_info
- 3.3.7 CONSTANT_Utf8_info
- 3.3.8 CONSTANT_String_info
- 3.3.9 CONSTANT_Class_info
- 3.3.10 CONSTANT_NameAndType_info
- 3.3.11 CONSTANT_Fieldref_info、CONSTANT_Methodref_info和CONSTANT_InterfaceMethodref_info
- 3.3.12 常量池小结
- 3.4 解析属性表
- 3.4.1 AttributeInfo接口
- 3.4.2 Deprecated和Synthetic属性
- 3.4.3 SourceFile属性
- 3.4.4 ConstantValue属性
- 3.4.5 Code属性
- 3.4.6 Exceptions属性
- 3.4.7 LineNumberTable和LocalVariableTable属性
- 3.5 测试本章代码
- 3.6 本章小结
- 第4章 运行时数据区
- 4.1 运行时数据区概述
- 4.2 数据类型
- 4.3 实现运行时数据区
- 4.3.1 线程
- 4.3.2 Java虚拟机栈
- 4.3.3 帧
- 4.3.4 局部变量表
- 4.3.5 操作数栈
- 4.3.6 局部变量表和操作数栈实例分析
- 4.4 测试本章代码
- 4.5 本章小结
- 第5章 指令集和解释器
- 5.1 字节码和指令集
- 5.2 指令和指令解码
- 5.2.1 Instruction接口
- 5.2.2 BytecodeReader
- 5.3 常量指令
- 5.3.1 nop指令
- 5.3.2 const系列指令
- 5.3.3 bipush和sipush指令
- 5.4 加载指令
- 5.5 存储指令
- 5.6 栈指令
- 5.6.1 pop和pop2指令
- 5.6.2 dup指令
- 5.6.3 swap指令
- 5.7 数学指令
- 5.7.1 算术指令
- 5.7.2 位移指令
- 5.7.3 布尔运算指令
- 5.7.4 iinc指令
- 5.8 类型转换指令
- 5.9 比较指令
- 5.9.1 lcmp指令
- 5.9.2 fcmp<op>和dcmp<op>指令
- 5.9.3 if<cond>指令
- 5.9.4 if_icmp<cond>指令
- 5.9.5 if_acmp<cond>指令
- 5.10 控制指令
- 5.10.1 goto指令
- 5.10.2 tableswitch指令
- 5.10.3 lookupswitch指令
- 5.11 扩展指令
- 5.11.1 wide指令
- 5.11.2 ifnull和ifnonnull指令
- 5.11.3 goto_w指令
- 5.12 解释器
- 5.13 测试本章代码
- 5.14 本章小结
- 第6章 类和对象
- 6.1 方法区
- 6.1.1 类信息
- 6.1.2 字段信息
- 6.1.3 方法信息
- 6.1.4 其他信息
- 6.2 运行时常量池
- 6.2.1 类符号引用
- 6.2.2 字段符号引用
- 6.2.3 方法符号引用
- 6.2.4 接口方法符号引用
- 6.3 类加载器
- 6.3.1 readClass()
- 6.3.2 defineClass()
- 6.3.3 link()
- 6.4 对象、实例变量和类变量
- 6.5 类和字段符号引用解析
- 6.5.1 类符号引用解析
- 6.5.2 字段符号引用解析
- 6.6 类和对象相关指令
- 6.6.1 new指令
- 6.6.2 putstatic和getstatic指令
- 6.6.3 putfield和getfield指令
- 6.6.4 instanceof和checkcast指令
- 6.6.5 ldc指令
- 6.7 测试本章代码
- 6.8 本章小结
- 第7章 方法调用和返回
- 7.1 方法调用概述
- 7.2 解析方法符号引用
- 7.2.1 非接口方法符号引用
- 7.2.2 接口方法符号引用
- 7.3 方法调用和参数传递
- 7.4 返回指令
- 7.5 方法调用指令
- 7.5.1 invokestatic指令
- 7.5.2 invokespecial指令
- 7.5.3 invokevirtual指令
- 7.5.4 invokeinterface指令
- 7.6 改进解释器
- 7.7 测试方法调用
- 7.8 类初始化
- 7.9 本章小结
- 第8章 数组和字符串
- 8.1 数组概述
- 8.2 数组实现
- 8.2.1 数组对象
- 8.2.2 数组类
- 8.2.3 加载数组类
- 8.3 数组相关指令
- 8.3.1 newarray指令
- 8.3.2 anewarray指令
- 8.3.3 arraylength指令
- 8.3.4 <t>aload指令
- 8.3.5 <t>astore指令
- 8.3.6 multianewarray指令
- 8.3.7 完善instanceof和checkcast指令
- 8.4 测试数组
- 8.5 字符串
- 8.5.1 字符串池
- 8.5.2 完善ldc指令
- 8.5.3 完善类加载器
- 8.6 测试字符串
- 8.7 本章小结
- 第9章 本地方法调用
- 9.1 注册和查找本地方法
- 9.2 调用本地方法
- 9.3 反射
- 9.3.1 类和对象之间的关系
- 9.3.2 修改类加载器
- 9.3.3 基本类型的类
- 9.3.4 修改ldc指令
- 9.3.5 通过反射获取类名
- 9.3.6 测试本节代码
- 9.4 字符串拼接和String.intern()方法
- 9.4.1 Java类库
- 9.4.2 System.arraycopy()方法
- 9.4.3 Float.floatToRawIntBits()和Double.doubleToRawLongBits()方法
- 9.4.4 String.intern()方法
- 9.4.5 测试本节代码
- 9.5 Object.hashCode()、equals()和toString()
- 9.6 Object.clone()
- 9.7 自动装箱和拆箱
- 9.8 本章小结
- 第10章 异常处理
- 10.1 异常处理概述
- 10.2 异常抛出
- 10.3 异常处理表
- 10.4 实现athrow指令
- 10.5 Java虚拟机栈信息
- 10.6 测试本章代码
- 10.7 本章小结
- 第11章 结束
- 11.1 System类是如何被初始化的
- 11.2 初始化System类
- 11.3 System.out.println()是如何工作的
- 11.4 测试本章代码
- 11.5 总结
- 附录 指令表
展开全部
出版方
机械工业出版社有限公司
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。