思维导图备注

自己动手写Java虚拟机
首页 下载 收藏书籍 阅读记录
  • 书签 我的书签
  • 添加书签 添加书签 移除书签 移除书签

6.8 本章小结

浏览 6 扫码
  • 小字体
  • 中字体
  • 大字体
2023-09-04 21:54:29
请 登录 再阅读
上一篇:
下一篇:
  • 书签
  • 添加书签 移除书签
  • 前言
  • 第1章 命令行工具
    • 1.1 准备工作
      • 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.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.2 Java虚拟机栈
      • 4.3.3 帧
      • 4.3.4 局部变量表
      • 4.3.5 操作数栈
      • 4.3.6 局部变量表和操作数栈实例分析
    • 4.4 测试本章代码
  • 4.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.2 位移指令
      • 5.7.3 布尔运算指令
      • 5.7.4 iinc指令
    • 5.8 类型转换指令
    • 5.9 比较指令
      • 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.2 ifnull和ifnonnull指令
      • 5.11.3 goto_w指令
    • 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 readClass()
      • 6.3.2 defineClass()
      • 6.3.3 link()
    • 6.4 对象、实例变量和类变量
    • 6.5 类和字段符号引用解析
      • 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.1 方法调用概述
    • 7.2 解析方法符号引用
      • 7.2.1 非接口方法符号引用
      • 7.2.2 接口方法符号引用
    • 7.3 方法调用和参数传递
    • 7.4 返回指令
    • 7.5 方法调用指令
      • 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.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.2 修改类加载器
      • 9.3.3 基本类型的类
      • 9.3.4 修改ldc指令
      • 9.3.5 通过反射获取类名
      • 9.3.6 测试本节代码
    • 9.4 字符串拼接和String.intern()方法
      • 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.1 System类是如何被初始化的
    • 11.2 初始化System类
    • 11.3 System.out.println()是如何工作的
    • 11.4 测试本章代码
    • 11.5 总结
  • 附录 指令表
暂无相关搜索结果!
    展开/收起文章目录

    二维码

    手机扫一扫,轻松掌上学

    《自己动手写Java虚拟机》电子书下载

    请下载您需要的格式的电子书,随时随地,享受学习的乐趣!
    EPUB 电子书

    书签列表

      阅读记录

      阅读进度: 0.00% ( 0/0 ) 重置阅读进度