深入理解Java虚拟机的目录

网上科普有关“深入理解Java虚拟机的目录”话题很是火热,小编也是针对深入理解Java虚拟机的目录寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够...

网上科普有关“深入理解Java虚拟机的目录”话题很是火热,小编也是针对深入理解Java虚拟机的目录寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。

前言

致谢

第一部分 走近Java

第1章 走近Java / 2

1.1 概述 / 2

1.2 Java技术体系 / 3

1.3 Java发展史 / 5

1.4 展望Java技术的未来 / 9

1.4.1 模块化 / 9

1.4.2 混合语言 / 9

1.4.3 多核并行 / 11

1.4.4 进一步丰富语法 / 12

1.4.5 64位虚拟机 / 13

1.5 实战:自己编译JDK / 13

1.5.1 获取JDK源码 / 13

1.5.2 系统需求 / 14

1.5.3 构建编译环境 / 15

1.5.4 准备依赖项 / 17

1.5.5 进行编译 / 18

1.6 本章小结 / 21

第二部分 自动内存管理机制

第2章 Java内存区域与内存溢出异常 / 24

2.1 概述 / 24

2.2 运行时数据区域 / 25

2.2.1 程序计数器 / 25

2.2.2 Java虚拟机栈 / 26

2.2.3 本地方法栈 / 27

2.2.4 Java堆 / 27

2.2.5 方法区 / 28

2.2.6 运行时常量池 / 29

2.2.7 直接内存 / 29

2.3 对象访问 / 30

2.4 实战:OutOfMemoryError异常 / 32

2.4.1 Java堆溢出 / 32

2.4.2 虚拟机栈和本地方法栈溢出 / 35

2.4.3 运行时常量池溢出 / 38

2.4.4 方法区溢出 / 39

2.4.5 本机直接内存溢出 / 41

2.5 本章小结 / 42

第3章 垃圾收集器与内存分配策略 / 43

3.1 概述 / 43

3.2 对象已死? / 44

3.2.1 引用计数算法 / 44

3.2.2 根搜索算法 / 46

3.2.3 再谈引用 / 47

3.2.4 生存还是死亡? / 48

3.2.5 回收方法区 / 50

3.3 垃圾收集算法 / 51

3.3.1 标记 -清除算法 / 51

3.3.2 复制算法 / 52

3.3.3 标记-整理算法 / 54

3.3.4 分代收集算法 / 54

3.4 垃圾收集器 / 55

3.4.1 Serial收集器 / 56

3.4.2 ParNew收集器 / 57

3.4.3 Parallel Scavenge收集器 / 59

3.4.4 Serial Old收集器 / 60

3.4.5 Parallel Old收集器 / 61

3.4.6 CMS收集器 / 61

3.4.7 G1收集器 / 64

3.4.8 垃圾收集器参数总结 / 64

3.5 内存分配与回收策略 / 65

3.5.1 对象优先在Eden分配 / 66

3.5.2 大对象直接进入老年代 / 68

3.5.3 长期存活的对象将进入老年代 / 69

3.5.4 动态对象年龄判定 / 71

3.5.5 空间分配担保 / 73

3.6 本章小结 / 75

第4章 虚拟机性能监控与故障处理工具 / 76

4.1 概述 / 76

4.2 JDK的命令行工具 / 76

4.2.1 jps:虚拟机进程状况工具 / 79

4.2.2 jstat:虚拟机统计信息监视工具 / 80

4.2.3 jinfo:Java配置信息工具 / 82

4.2.4 jmap:Java内存映像工具 / 82

4.2.5 jhat:虚拟机堆转储快照分析工具 / 84

4.2.6 jstack:Java堆栈跟踪工具 / 85

4.3 JDK的可视化工具 / 87

4.3.1 JConsole:Java监视与管理控制台 / 88

4.3.2 VisualVM:多合一故障处理工具 / 96

4.4 本章小结 / 105

第5章 调优案例分析与实战 / 106

5.1 概述 / 106

5.2 案例分析 / 106

5.2.1 高性能硬件上的程序部署策略 / 106

5.2.2 集群间同步导致的内存溢出 / 109

5.2.3 堆外内存导致的溢出错误 / 110

5.2.4 外部命令导致系统缓慢 / 112

5.2.5 服务器JVM进程崩溃 / 113

5.3 实战:Eclipse运行速度调优 / 114

5.3.1 调优前的程序运行状态 / 114

5.3.2 升级JDK 1.6的性能变化及兼容问题 / 117

5.3.3 编译时间和类加载时间的优化 / 122

5.3.4 调整内存设置控制垃圾收集频率 / 126

5.3.5 选择收集器降低延迟 / 130

5.4 本章小结 / 133

第三部分 虚拟机执行子系统

第6章 类文件结构 / 136

6.1 概述 / 136

6.2 无关性的基石 / 136

6.3 Class类文件的结构 / 138

6.3.1 魔数与Class文件的版本 / 139

6.3.2 常量池 / 141

6.3.3 访问标志 / 147

6.3.4 类索引、父类索引与接口索引集合 / 148

6.3.5 字段表集合 / 149

6.3.6 方法表集合 / 153

6.3.7 属性表集合 / 155

6.4 Class文件结构的发展 / 168

6.5 本章小结 / 170

第7章 虚拟机类加载机制 / 171

7.1 概述 / 171

7.2 类加载的时机 / 172

7.3 类加载的过程 / 176

7.3.1 加载 / 176

7.3.2 验证 / 178

7.3.3 准备 / 181

7.3.4 解析 / 182

7.3.5 初始化 / 186

7.4 类加载器 / 189

7.4.1 类与类加载器 / 189

7.4.2 双亲委派模型 / 191

7.4.3 破坏双亲委派模型 / 194

7.5 本章小结 / 197

第8章 虚拟机字节码执行引擎 / 198

8.1 概述 / 198

8.2 运行时栈帧结构 / 199

8.2.1 局部变量表 / 199

8.2.2 操作数栈 / 204

8.2.3 动态连接 / 206

8.2.4 方法返回地址 / 206

8.2.5 附加信息 / 207

8.3 方法调用 / 207

8.3.1 解析 / 207

8.3.2 分派 / 209

8.4 基于栈的字节码解释执行引擎 / 221

8.4.1 解释执行 / 221

8.4.2 基于栈的指令集与基于寄存器的指令集 / 223

8.4.3 基于栈的解释器执行过程 / 224

8.5 本章小结 / 230

第9章 类加载及执行子系统的案例与实战 / 231

9.1 概述 / 231

9.2 案例分析 / 231

9.2.1 Tomcat:正统的类加载器架构 / 232

9.2.2 OSGi:灵活的类加载器架构 / 235

9.2.3 字节码生成技术与动态代理的实现 / 238

9.2.4 Retrotranslator:跨越JDK版本 / 242

9.3 实战:自己动手实现远程执行功能 / 246

9.3.1 目标 / 246

9.3.2 思路 / 247

9.3.3 实现 / 248

9.3.4 验证 / 255

9.4 本章小结 / 256

第四部分 程序编译与代码优化

第10章 早期(编译期)优化 / 258

10.1 概述 / 258

10.2 Javac编译器 / 259

10.2.1 Javac的源码与调试 / 259

10.2.2 解析与填充符号表 / 262

10.2.3 注解处理器 / 264

10.2.4 语义分析与字节码生成 / 264

10.3 Java语法糖的味道 / 268

10.3.1 泛型与类型擦除 / 268

10.3.2 自动装箱、拆箱与遍历循环 / 273

10.3.3 条件编译 / 275

10.4 实战:插入式注解处理器 / 276

10.4.1 实战目标 / 276

10.4.2 代码实现 / 277

10.4.3 运行与测试 / 284

10.4.4 其他应用案例 / 286

10.5 本章小结 / 286

第11章 晚期(运行期)优化 / 287

11.1 概述 / 287

11.2 HotSpot虚拟机内的即时编译器 / 288

11.2.1 解释器与编译器 / 288

11.2.2 编译对象与触发条件 / 291

11.2.3 编译过程 / 294

11.2.4 查看与分析即时编译结果 / 297

11.3 编译优化技术 / 301

11.3.1 优化技术概览 / 301

11.3.2 公共子表达式消除 / 305

11.3.3 数组边界检查消除 / 307

11.3.4 方法内联 / 307

11.3.5 逃逸分析 / 309

11.4 Java与C/C++的编译器对比 / 311

11.5 本章小结 / 313

第五部分 高效并发

第12章 Java内存模型与线程 / 316

12.1 概述 / 316

12.2 硬件的效率与一致性 / 317

12.3 Java内存模型 / 318

12.3.1 主内存与工作内存 / 319

12.3.2 内存间交互操作 / 320

12.3.3 对于volatile型变量的特殊规则 / 322

12.3.4 对于long和double型变量的特殊规则 / 327

12.3.5 原子性、可见性与有序性 / 328

12.3.6 先行发生原则 / 330

12.4 Java与线程 / 333

12.4.1 线程的实现 / 333

12.4.2 Java线程调度 / 337

12.4.3 状态转换 / 339

12.5 本章小结 / 341

第13章 线程安全与锁优化 / 342

13.1 概述 / 342

13.2 线程安全 / 343

13.2.1 Java语言中的线程安全 / 343

13.2.2 线程安全的实现方法 / 348

13.3 锁优化 / 356

13.3.1 自旋锁与自适应自旋 / 356

13.3.2 锁消除 / 357

13.3.3 锁粗化 / 358

13.3.4 轻量级锁 / 358

13.3.5 偏向锁 / 361

13.4 本章小结 / 362

附录A Java虚拟机家族 / 363

附录B 虚拟机字节码指令表 / 366

附录C HotSpot虚拟机主要参数表 / 372

附录D 对象查询语言(OQL)简介 / 376

附录E JDK历史版本轨迹 / 383

关于“深入理解Java虚拟机的目录”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!

本文来自作者[禾志亮]投稿,不代表空气号立场,如若转载,请注明出处:https://haokongqi.org.cn/cshi/202504-642.html

(136)

文章推荐

  • 重庆疫情解封时间表(重庆疫情解封公告)

    今天给各位分享重庆疫情解封时间表的知识,其中也会对重庆疫情解封公告进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!重庆疫情管控是几号到几号1、重庆疫情管控是8号到1号。根据查询重庆疫情封控资料显示,重庆在2022年11月8日起进行封控,到2022年12月1日,开始逐步解封。2

    2025年03月06日
    22
  • 分享干货”中爱棋牌有没有挂”其实确实有挂

    分享干货”中爱棋牌有没有挂网上科普有关“分享干货”中爱棋牌有没有挂”话题很是火热,小编也是针对分享干货”中爱棋牌有没有挂寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。  您好,分享干货”中爱棋牌有没有挂这款游戏可以开挂的,确实是有挂的,通过微

    2025年03月07日
    10
  • 分享干货”互娱牛牛透视挂(万能开挂器通用版)

    分享干货”互娱牛牛透视挂网上科普有关“分享干货”互娱牛牛透视挂”话题很是火热,小编也是针对分享干货”互娱牛牛透视挂寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。  您好,分享干货”互娱牛牛透视挂这款游戏可以开挂的,确实是有挂的,通过微信【】很

    2025年03月07日
    9
  • 徐州公立中专有哪几所

    网上科普有关“徐州公立中专有哪几所”话题很是火热,小编也是针对徐州公立中专有哪几所寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。徐州公立中专有哪几所如下:1、徐州生物工程职业技术学院徐州生物工程职业技术学院(XuzhouPolytechnicColleg

    2025年03月11日
    160
  • 深圳儿童入学所需的房屋租赁合同如何办理?

    网上科普有关“深圳儿童入学所需的房屋租赁合同如何办理?”话题很是火热,小编也是针对深圳儿童入学所需的房屋租赁合同如何办理?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。所需材料一、出租方(个人)1、房屋租赁登记备案申请表(有房产证)或房屋租赁信息申请表(无房

    2025年03月17日
    143
  • 思政专业大学排名

    网上科普有关“思政专业大学排名”话题很是火热,小编也是针对思政专业大学排名寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。思政专业大学排名:1、中国人民大学,院校代码:100022、清华大学,院校代码:100033、东北师范大学,院校代码:102004、武汉大

    2025年03月22日
    11
  • 新冠肺炎疫情在武汉是什么时候开始的(新型冠状病毒武汉什么时候开始的)

    今天给各位分享新冠肺炎疫情在武汉是什么时候开始的的知识,其中也会对新型冠状病毒武汉什么时候开始的进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!中国新冠疫情爆发的具体时间中国新冠疫情爆发于2019年底,大约12月中旬,尽管最初的病例可能在11月就已经出现。以下是关于中国新冠疫

    2025年03月14日
    24
  • 什么时候发现的疫情(什么时候发现的疫情最严重)

    本篇文章给大家谈谈什么时候发现的疫情,以及什么时候发现的疫情最严重对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。新冠疫情的背景新冠疫情的背景是2019年12月,新冠病毒在武汉首次被发现。根据官方报道,病毒可能源自华南海鲜市场的一名患者,该患者于12月12日前往武汉医院就诊,表现出高烧和干

    2025年03月16日
    19
  • 钟南山疫情事迹100字(2020疫情时钟南山的事迹100字)

    今天给各位分享钟南山疫情事迹100字的知识,其中也会对2020疫情时钟南山的事迹100字进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!钟南山的简要事迹100字钟南山,男,汉族,福建厦门人,1936年10月出生于南京,中共党员,中国工程院院士,著名呼吸病学专家,中国抗击非典型

    2025年03月20日
    22
  • 疫情期间的英雄事迹和人物故事图片素材高清(疫情期间的英雄感人故事)

    本篇文章给大家谈谈疫情期间的英雄事迹和人物故事图片素材高清,以及疫情期间的英雄感人故事对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。关于疫情素材人物事例1、童朝晖,作为一名重症医学专家,他担任中央指导组专家组成员,对每一位患者的诊疗细节都给予了高度关注。从数据分析到病情变化,他都严格监控

    2025年03月22日
    17

发表回复

本站作者后才能评论

评论列表(4条)

  • 禾志亮
    禾志亮 2025年04月19日

    我是空气号的签约作者“禾志亮”!

  • 禾志亮
    禾志亮 2025年04月19日

    希望本篇文章《深入理解Java虚拟机的目录》能对你有所帮助!

  • 禾志亮
    禾志亮 2025年04月19日

    本站[空气号]内容主要涵盖:国足,欧洲杯,世界杯,篮球,欧冠,亚冠,英超,足球,综合体育

  • 禾志亮
    禾志亮 2025年04月19日

    本文概览:网上科普有关“深入理解Java虚拟机的目录”话题很是火热,小编也是针对深入理解Java虚拟机的目录寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够...