思维导图备注

深入理解Java虚拟机:JVM高级特性与最佳实践-周志明
首页 收藏书籍 阅读记录
  • 书签 我的书签
  • 添加书签 添加书签 移除书签 移除书签

前言

浏览 1 扫码
  • 小字体
  • 中字体
  • 大字体
2022-02-19 20:34:03
请 登录 再阅读
上一篇:
下一篇:
  • 书签
  • 添加书签 移除书签
  • 前言
    • 第2版与第1版的区别
    • 本书面向的读者
    • 如何阅读本书
      • 内容特色
      • 参考资料
    • 勘误和支持
    • 致谢
  • 第一部分 走近Java
    • 第1章 走近Java
      • 1.2 Java技术体系
      • 1.3 Java发展史
      • 1.4 Java虚拟机发展史
        • 1.4.2 Sun HotSpot VM
        • 1.4.3 Sun Mobile-Embedded VM/Meta-Circular VM
        • 1.4.4 BEA JRockit/IBM J9 VM
        • 1.4.5 Azul VM/BEA Liquid VM
        • 1.4.6 Apache Harmony/Google Android Dalvik VM
        • 1.4.7 Microsoft JVM及其他
      • 1.5 展望Java技术的未来
        • 1.5.2 混合语言
        • 1.5.3 多核并行
        • 1.5.4 进一步丰富语法
        • 1.5.5 64位虚拟机
      • 1.6 实战:自己编译JDK
        • 1.6.2 系统需求
        • 1.6.3 构建编译环境
        • 1.6.4 进行编译
        • 1.6.5 在IDE工具中进行源码调试
      • 1.7 本章小结
  • 第二部分 自动内存管理机制
    • 第2章 Java内存区域与内存溢出异常
      • 2.2 运行时数据区域
        • 2.2.2 Java虚拟机栈
        • 2.2.3 本地方法栈
        • 2.2.4 Java堆
        • 2.2.5 方法区
        • 2.2.6 运行时常量池
        • 2.2.7 直接内存
      • 2.3 HotSpot虚拟机对象探秘
        • 2.3.2 对象的内存布局
        • 2.3.3 对象的访问定位
      • 2.4 实战:OutOfMemoryError异常
        • 2.4.2 虚拟机栈和本地方法栈溢出
        • 2.4.3 方法区和运行时常量池溢出
        • 2.4.4 本机直接内存溢出
      • 2.5 本章小结
    • 第3章 垃圾收集器与内存分配策略
      • 3.2 对象已死吗
        • 3.2.2 可达性分析算法
        • 3.2.3 再谈引用
        • 3.2.4 生存还是死亡
        • 3.2.5 回收方法区
      • 3.3 垃圾收集算法
        • 3.3.2 复制算法
        • 3.3.3 标记-整理算法
        • 3.3.4 分代收集算法
      • 3.4 HotSpot的算法实现
        • 3.4.2 安全点
        • 3.4.3 安全区域
      • 3.5 垃圾收集器
        • 3.5.2 ParNew收集器
        • 3.5.3 Parallel Scavenge收集器
        • 3.5.4 Serial Old收集器
        • 3.5.5 Parallel Old收集器
        • 3.5.6 CMS收集器
        • 3.5.7 G1收集器
        • 3.5.8 理解GC日志
        • 3.5.9 垃圾收集器参数总结
      • 3.6 内存分配与回收策略
        • 3.6.2 大对象直接进入老年代
        • 3.6.3 长期存活的对象将进入老年代
        • 3.6.4 动态对象年龄判定
        • 3.6.5 空间分配担保
      • 3.7 本章小结
    • 第4章 虚拟机性能监控与故障处理工具
      • 4.2 JDK的命令行工具
        • 4.2.2 jstat:虚拟机统计信息监视工具
        • 4.2.3 jinfo:Java配置信息工具
        • 4.2.4 jmap:Java内存映像工具
        • 4.2.5 jhat:虚拟机堆转储快照分析工具
        • 4.2.6 jstack:Java堆栈跟踪工具
        • 4.2.7 HSDIS:JIT生成代码反汇编
      • 4.3 JDK的可视化工具
        • 4.3.2 VisualVM:多合一故障处理工具
      • 4.4 本章小结
    • 第5章 调优案例分析与实战
      • 5.2 案例分析
        • 5.2.2 集群间同步导致的内存溢出
        • 5.2.3 堆外内存导致的溢出错误
        • 5.2.4 外部命令导致系统缓慢
        • 5.2.5 服务器JVM进程崩溃
        • 5.2.6 不恰当数据结构导致内存占用过大
        • 5.2.7 由Windows虚拟内存导致的长时间停顿
      • 5.3 实战:Eclipse运行速度调优
        • 5.3.2 升级JDK 1.6的性能变化及兼容问题
        • 5.3.3 编译时间和类加载时间的优化
        • 5.3.4 调整内存设置控制垃圾收集频率
        • 5.3.5 选择收集器降低延迟
      • 5.4 本章小结
  • 第三部分 虚拟机执行子系统
    • 第6章 类文件结构
      • 6.2 无关性的基石
      • 6.3 Class类文件的结构
        • 6.3.2 常量池
        • 6.3.3 访问标志
        • 6.3.4 类索引、父类索引与接口索引集合
        • 6.3.5 字段表集合
        • 6.3.6 方法表集合
        • 6.3.7 属性表集合
      • 6.4 字节码指令简介
        • 6.4.2 加载和存储指令
        • 6.4.3 运算指令
        • 6.4.4 类型转换指令
        • 6.4.5 对象创建与访问指令
        • 6.4.6 操作数栈管理指令
        • 6.4.7 控制转移指令
        • 6.4.8 方法调用和返回指令
        • 6.4.9 异常处理指令
        • 6.4.10 同步指令
      • 6.5 公有设计和私有实现
      • 6.6 Class文件结构的发展
      • 6.7 本章小结
    • 第7章 虚拟机类加载机制
      • 7.2 类加载的时机
      • 7.3 类加载的过程
        • 7.3.2 验证
        • 7.3.3 准备
        • 7.3.4 解析
        • 7.3.5 初始化
      • 7.4 类加载器
        • 7.4.2 双亲委派模型
        • 7.4.3 破坏双亲委派模型
      • 7.5 本章小结
    • 第8章 虚拟机字节码执行引擎
      • 8.2 运行时栈帧结构
        • 8.2.2 操作数栈
        • 8.2.3 动态连接
        • 8.2.4 方法返回地址
        • 8.2.5 附加信息
      • 8.3 方法调用
        • 8.3.2 分派
        • 8.3.3 动态类型语言支持
      • 8.4 基于栈的字节码解释执行引擎
        • 8.4.2 基于栈的指令集与基于寄存器的指令集
        • 8.4.3 基于栈的解释器执行过程
      • 8.5 本章小结
    • 第9章 类加载及执行子系统的案例与实战
      • 9.2 案例分析
        • 9.2.2 OSGi:灵活的类加载器架构
        • 9.2.3 字节码生成技术与动态代理的实现
        • 9.2.4 Retrotranslator:跨越JDK版本
      • 9.3 实战:自己动手实现远程执行功能
        • 9.3.2 思路
        • 9.3.3 实现
        • 9.3.4 验证
      • 9.4 本章小结
  • 第四部分 程序编译与代码优化
    • 第10章 早期(编译期)优化
      • 10.2 Javac编译器
        • 10.2.2 解析与填充符号表
        • 10.2.3 注解处理器
        • 10.2.4 语义分析与字节码生成
      • 10.3 Java语法糖的味道
        • 10.3.2 自动装箱、拆箱与遍历循环
        • 10.3.3 条件编译
      • 10.4 实战:插入式注解处理器
        • 10.4.2 代码实现
        • 10.4.3 运行与测试
        • 10.4.4 其他应用案例
      • 10.5 本章小结
    • 第11章 晚期(运行期)优化
      • 11.2 HotSpot虚拟机内的即时编译器
        • 11.2.2 编译对象与触发条件
        • 11.2.3 编译过程
        • 11.2.4 查看及分析即时编译结果
      • 11.3 编译优化技术
        • 11.3.2 公共子表达式消除
        • 11.3.3 数组边界检查消除
        • 11.3.4 方法内联
        • 11.3.5 逃逸分析
      • 11.4 Java与C/C++的编译器对比
      • 11.5 本章小结
  • 第五部分 高效并发
    • 第12章 Java内存模型与线程
      • 12.2 硬件的效率与一致性
      • 12.3 Java内存模型
        • 12.3.2 内存间交互操作
        • 12.3.3 对于volatile型变量的特殊规则
        • 12.3.4 对于long和double型变量的特殊规则
        • 12.3.5 原子性、可见性与有序性
        • 12.3.6 先行发生原则
      • 12.4 Java与线程
        • 12.4.2 Java线程调度
        • 12.4.3 状态转换
      • 12.5 本章小结
    • 第13章 线程安全与锁优化
      • 13.2 线程安全
        • 13.2.2 线程安全的实现方法
      • 13.3 锁优化
        • 13.3.2 锁消除
        • 13.3.3 锁粗化
        • 13.3.4 轻量级锁
        • 13.3.5 偏向锁
      • 13.4 本章小结
  • 附录
    • 附录A 编译Windows版的OpenJDK
      • A.2 系统需求
      • A.3 构建编译环境
      • A.4 准备依赖项
      • A.5 进行编译
    • 附录B 虚拟机字节码指令表
    • 附录C HotSpot虚拟机主要参数表
      • C.2 即时编译参数
      • C.3 类型加载参数
      • C.4 多线程相关参数
      • C.5 性能参数
      • C.6 调试参数
    • 附录D 对象查询语言(OQL)简介
      • D.2 FROM子句
      • D.3 WHERE子句
      • D.4 属性访问器
      • D.5 OQL语言的BNF范式
    • 附录E JDK历史版本轨迹
暂无相关搜索结果!
    展开/收起文章目录

    二维码

    手机扫一扫,轻松掌上学

    《深入理解Java虚拟机:JVM高级特性与最佳实践-周志明》电子书下载

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

    书签列表

      阅读记录

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