自己动手java虚拟机_自己动手写Java虚拟机

目  录

前言

第章 命令行工具

1.1 准备工作

1.1.1 安装

1.1.2 安装

1.1.3 创建目录结构

1.2 命令

1.3 编写命令行工具

1.4 测试本章代码

1.5 本章小结

第章 搜索文件

2.1 类路径

2.2 准备工作

2.3 实现类路径

2.3.1 接口

2.3.2

2.3.3

2.3.4

2.3.5

2.3.6

2.4 测试本章代码

2.5 本章小结

第章 解析文件

3.1 文件

3.2 解析文件

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 结构体

3.3.2 接口

3.3.3

3.3.4

3.3.5

3.3.6

3.3.7

3.3.8

3.3.9

3.3.10

3.3.11 、

3.3.12 常量池小结

3.4 解析属性表

3.4.1 接口

3.4.2 和属性

3.4.3 属性

3.4.4 属性

3.4.5 属性

3.4.6 属性

3.4.7 和

属性

3.5 测试本章代码

3.6 本章小结

第章 运行时数据区

4.1 运行时数据区概述

4.2 数据类型

4.3 实现运行时数据区

4.3.1 线程

4.3.2 虚拟机栈

4.3.3 帧

4.3.4 局部变量表

4.3.5 操作数栈

4.3.6 局部变量表和操作数栈实例分析

4.4 测试本章代码

4.5 本章小结

第章 指令集和解释器

5.1 字节码和指令集

5.2 指令和指令解码

5.2.1 接口

5.2.2

5.3 常量指令

5.3.1 指令

5.3.2 系列指令

5.3.3 和指令

5.4 加载指令

5.5 存储指令

5.6 栈指令

5.6.1 和指令

5.6.2 指令

5.6.3 指令

5.7 数学指令

5.7.1 算术指令

5.7.2 位移指令

5.7.3 布尔运算指令

5.7.4 指令

5.8 类型转换指令

5.9 比较指令

5.9.1 指令

5.9.2 和指令

5.9.3 指令

5.9.4 指令

5.9.5 指令

5.10 控制指令

5.10.1 指令

5.10.2 指令

5.10.3 指令

5.11 扩展指令

5.11.1 指令

5.11.2 和指令

5.11.3 指令

5.12 解释器

5.13 测试本章代码

5.14 本章小结

第章 类和对象

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

6.3.2

6.3.3

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

6.5 类和字段符号引用解析

6.5.1 类符号引用解析

6.5.2 字段符号引用解析

6.6 类和对象相关指令

6.6.1 指令

6.6.2 和指令

6.6.3 和指令

6.6.4 和指令

6.6.5 指令

6.7 测试本章代码

6.8 本章小结

第章 方法调用和返回

7.1 方法调用概述

7.2 解析方法符号引用

7.2.1 非接口方法符号引用

7.2.2 接口方法符号引用

7.3 方法调用和参数传递

7.4 返回指令

7.5 方法调用指令

7.5.1 指令

7.5.2 指令

7.5.3 指令

7.5.4 指令

7.6 改进解释器

7.7 测试方法调用

7.8 类初始化

7.9 本章小结

第章 数组和字符串

8.1 数组概述

8.2 数组实现

8.2.1 数组对象

8.2.2 数组类

8.2.3 加载数组类

8.3 数组相关指令

8.3.1 指令

8.3.2 指令

8.3.3 指令

8.3.4 aload指令

8.3.5 astore指令

8.3.6 指令

8.3.7 完善和指令

8.4 测试数组

8.5 字符串

8.5.1 字符串池

8.5.2 完善指令

8.5.3 完善类加载器

8.6 测试字符串

8.7 本章小结

第章 本地方法调用

9.1 注册和查找本地方法

9.2 调用本地方法

9.3 反射

9.3.1 类和对象之间的关系

9.3.2 修改类加载器

9.3.3 基本类型的类

9.3.4 修改指令

9.3.5 通过反射获取类名

9.3.6 测试本节代码

9.4 字符串拼接和方法

9.4.1 类库

9.4.2 方法

9.4.3 和方法

9.4.4 方法

9.4.5 测试本节代码

9.5 、和

9.6

9.7 自动装箱和拆箱

9.8 本章小结

第章 异常处理

10.1 异常处理概述

10.2 异常抛出

10.3 异常处理表

10.4 实现指令

10.5 虚拟机栈信息

10.6 测试本章代码

10.7 本章小结

第章 结束

11.1 类是如何被初始化的

11.2 初始化类

11.3 是如何工作的

11.4 测试本章代码

11.5 总结

附录 指令表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值