深化了解Java虚构机作者简介

深化了解Java虚构机作者简介

本文目录导航:

深化了解Java虚构机作者简介

深化了解Java虚构机,咱们不得不提到周志明这位资深的Java技术专家。

他在JavaEE企业级运行开发、OSGi、以及Java虚构机畛域有着深沉的钻研背景和丰盛的通常阅历。

特意是对Java虚构机(JVM),周志明有着独到的见地和深化的把握,他的诸多关于JVM的深化剖析和见地被宽泛流传,被各大技术社区,如ITeye,视为JVM畛域的威望声响。

周志明的文章因其深度和适用性,备受技术社区推崇,他的作品经常被争相转载,成为了Java虚构机钻研的关键参考资料。

在业界,他被誉为Java虚构机的领军人物之一,他的影响力可见一斑。

在职业角色上,周志明目前担任远光软件股份有限公司的平台开发部经理兼平台架构师。

他的上班阅历丰盛,曾介入过国度电网、南边电网等国度级大型ERP名目的平台架构设计,这使他对软件系统架构有着深化的了解和共同的见地。

他的通常阅历和通常知知趣联合,为Java虚构机的钻研和运行提供了贵重的视角。

深化了解Java虚构机的目录

前言致谢第一部分 走近Java第1章 走近Java / 21.1 概述 / 21.2 Java技术体系 / 31.3 Java开展史 / 51.4 展望Java技术的未来 / 91.4.1 模块化 / 91.4.2 混合言语 / 91.4.3 多核并行 / 111.4.4 进一步丰盛语法 / 121.4.5 64位虚构机 / 131.5 实战:自己编译JDK / 131.5.1 失掉JDK源码 / 131.5.2 系统需求 / 141.5.3 构建编译环境 / 151.5.4 预备依赖项 / 171.5.5 启动编译 / 181.6 本章小结 / 21第二部分 智能内存治理机制第2章 Java内存区域与内存溢出意外 / 242.1 概述 / 242.2 运转时数据区域 / 252.2.1 程序计数器 / 252.2.2 Java虚构机栈 / 262.2.3 本地方法栈 / 272.2.4 Java堆 / 272.2.5 方法区 / 282.2.6 运转时常量池 / 292.2.7 间接内存 / 292.3 对象访问 / 302.4 实战:OutOfMemoryError意外 / 322.4.1 Java堆溢出 / 322.4.2 虚构机栈和本地方法栈溢出 / 352.4.3 运转时常量池溢出 / 382.4.4 方法区溢出 / 392.4.5 本机间接内存溢出 / 412.5 本章小结 / 42第3章 渣滓搜集器与内存调配战略 / 433.1 概述 / 433.2 对象已死? / 443.2.1 援用计数算法 / 443.2.2 根搜查算法 / 463.2.3 再谈援用 / 473.2.4 生活还是死亡? / 483.2.5 回收方法区 / 503.3 渣滓搜集算法 / 513.3.1 标志 -肃清算法 / 513.3.2 复制算法 / 523.3.3 标志-整顿算法 / 543.3.4 分代搜集算法 / 543.4 渣滓搜集器 / 553.4.1 Serial搜集器 / 563.4.2 ParNew搜集器 / 573.4.3 Parallel Scavenge搜集器 / 593.4.4 Serial Old搜集器 / 603.4.5 Parallel Old搜集器 / 613.4.6 CMS搜集器 / 613.4.7 G1搜集器 / 643.4.8 渣滓搜集器参数总结 / 643.5 内存调配与回收战略 / 653.5.1 对象优先在Eden调配 / 663.5.2 大对象间接进入老年代 / 683.5.3 常年存活的对象将进入老年代 / 693.5.4 灵活对象年龄判定 / 713.5.5 空间调配担保 / 733.6 本章小结 / 75第4章 虚构机性能监控与缺点解决工具 / 764.1 概述 / 764.2 JDK的命令行工具 / 764.2.1 jps:虚构机进程状况工具 / 794.2.2 jstat:虚构机统计消息监督工具 / 804.2.3 jinfo:Java性能消息工具 / 824.2.4 jmap:Java内存映像工具 / 824.2.5 jhat:虚构机堆转储快照剖析工具 / 844.2.6 jstack:Java堆栈跟踪工具 / 854.3 JDK的可视化工具 / 874.3.1 JConsole:Java监督与治理控制台 / 884.3.2 VisualVM:多合一缺点解决工具 / 964.4 本章小结 / 105第5章 调优案例剖析与实战 / 1065.1 概述 / 1065.2 案例剖析 / 1065.2.1 高性能配件上的程序部署战略 / 1065.2.2 集群间同步造成的内存溢出 / 1095.2.3 堆外内存造成的溢出失误 / 1105.2.4 外部命令造成系统缓慢 / 1125.2.5 主机JVM进程解体 / 1135.3 实战:Eclipse运转速度调优 / 1145.3.1 调优前的程序运转形态 / 1145.3.2 更新JDK 1.6的性能变动及兼容疑问 / 1175.3.3 编译期间和类加载期间的提升 / 1225.3.4 调整内存设置控制渣滓搜集频率 / 1265.3.5 选用搜集器降落提前 / 1305.4 本章小结 / 133第三部分 虚构机口头子系统第6章 类文件结构 / 1366.1 概述 / 1366.2 有关性的基石 / 1366.3 Class类文件的结构 / 1386.3.1 魔数与Class文件的版本 / 1396.3.2 常量池 / 1416.3.3 访问标志 / 1476.3.4 类索引、父类索引与接口索引汇合 / 1486.3.5 字段表汇合 / 1496.3.6 方法表汇合 / 1536.3.7 属性表汇合 / 1556.4 Class文件结构的开展 / 1686.5 本章小结 / 170第7章 虚构机类加载机制 / 1717.1 概述 / 1717.2 类加载的机遇 / 1727.3 类加载的环节 / 1767.3.1 加载 / 1767.3.2 验证 / 1787.3.3 预备 / 1817.3.4 解析 / 1827.3.5 初始化 / 1867.4 类加载器 / 1897.4.1 类与类加载器 / 1897.4.2 双亲委派模型 / 1917.4.3 破坏双亲委派模型 / 1947.5 本章小结 / 197第8章 虚构机字节码口头引擎 / 1988.1 概述 / 1988.2 运转时栈帧结构 / 1998.2.1 部分变量表 / 1998.2.2 操作数栈 / 2048.2.3 灵活衔接 / 2068.2.4 方法前往地址 / 2068.2.5 附加消息 / 2078.3 方法调用 / 2078.3.1 解析 / 2078.3.2 分派 / 2098.4 基于栈的字节码解释口头引擎 / 2218.4.1 解释口头 / 2218.4.2 基于栈的指令集与基于寄存器的指令集 / 2238.4.3 基于栈的解释器口头环节 / 2248.5 本章小结 / 230第9章 类加载及口头子系统的案例与实战 / 2319.1 概述 / 2319.2 案例剖析 / 2319.2.1 Tomcat:正统的类加载器架构 / 2329.2.2 OSGi:灵敏的类加载器架构 / 2359.2.3 字节码生成技术与灵活代理的成功 / 2389.2.4 Retrotranslator:超过JDK版本 / 2429.3 实战:自己入手成功远程口头性能 / 2469.3.1 指标 / 2469.3.2 思绪 / 2479.3.3 成功 / 2489.3.4 验证 / 2559.4 本章小结 / 256第四部分 程序编译与代码提升第10章 早期(编译期)提升 / .1 概述 / .2 Javac编译器 / .2.1 Javac的源码与调试 / .2.2 解析与填充符号表 / .2.3 注解解决器 / .2.4 语义剖析与字节码生成 / .3 Java语法糖的滋味 / .3.1 泛型与类型擦除 / .3.2 智能装箱、拆箱与遍历循环 / .3.3 条件编译 / .4 实战:拔出式注解解决器 / .4.1 实战指标 / .4.2 代码成功 / .4.3 运转与测试 / .4.4 其余运行案例 / .5 本章小结 / 286第11章 早期(运转期)提升 / .1 概述 / .2 HotSpot虚构机内的即时编译器 / .2.1 解释器与编译器 / .2.2 编译对象与触发条件 / .2.3 编译环节 / .2.4 检查与剖析即时编译结果 / .3 编译提升技术 / .3.1 提升技术概览 / .3.2 公共子表白式消弭 / .3.3 数组边界审核消弭 / .3.4 方法内联 / .3.5 逃逸剖析 / .4 Java与C/C++的编译器对比 / .5 本章小结 / 313第五部分 高效并发第12章 Java内存模型与线程 / .1 概述 / .2 配件的效率与分歧性 / .3 Java内存模型 / .3.1 主内存与上班内存 / .3.2 内存间交互操作 / .3.3 关于volatile型变量的不凡规则 / .3.4 关于long和double型变量的不凡规则 / .3.5 原子性、可见性与有序性 / .3.6 后行出现准则 / .4 Java与线程 / .4.1 线程的成功 / .4.2 Java线程调度 / .4.3 形态转换 / .5 本章小结 / 341第13章 线程安保与锁提升 / .1 概述 / .2 线程安保 / .2.1 Java言语中的线程安保 / .2.2 线程安保的成功方法 / .3 锁提升 / .3.1 自旋锁与自顺应自旋 / .3.2 锁消弭 / .3.3 锁粗化 / .3.4 轻量级锁 / .3.5 倾向锁 / .4 本章小结 / 362附录A Java虚构机家族 / 363附录B 虚构机字节码指令表 / 366附录C HotSpot虚构机关键参数表 / 372附录D 对象查问言语(OQL)简介 / 376附录E JDK历史版本轨迹 / 383

JAVA虚构机是什么意思?

Java虚构机(Java Virtual Machine,简称JVM)是一种假想的计算机。

从结构上看,它由形象的指令集、寄存器组、类文件格局规则、堆栈、内存渣滓搜集器和存储区六个部件组成。

指令集驳回与平合有关的字节码方式,寄存器组中蕴含程序计数器、堆栈指针、运转环境指针和变量指针,类文件也与平台有关,堆栈用来传递参数和前往运转结果,渣滓搜集器搜集不再经常使用的内存片段,存储区则用来寄存字节码。

JVM仅仅规则部件的性能和规格。

只管这些性能和规格是一致的,然而并没有规则这此部件的详细成功技术,就是说,可以用任何一种技术来成功。

Java中引入了虚构机的概念,即在机器和编译程序之间添加了一层形象的虚构的机器。

这台虚构的机器在任何平台上都提供应编译程序一个的共同的接口。

编译程序只有要面向虚构机,生成虚构机能够了解的代码,而后由解释器来将虚构机代码转换为特定系统的机器码口头。

在Java中,这种供虚构机了解的代码叫做字节码(ByteCode),它不面向任何特定的解决器,只面向虚构机。

每一种平台的解释器是不同的,然而成功的虚构机是相反的。

Java源程序通过编译器编译后变成字节码,字节码由虚构机解释口头,虚构机将每一条要口头的字节码送给解释器,解释器将其翻译成特定机器上的机器码,而后在特定的机器上运转。

可以说,Java虚构机是Java言语的基础。

它是Java技术的关键组成部分。

Java虚构机是一个形象的计算机,和实践的计算机一样,它具备一个指令集并经常使用不同的存储区域。

它担任口头指令,还要治理数据、内存和寄存器。

Java解释器担任将字节代码翻译成特定机器的机器代码。

Java是一种便捷的言语。

它用到的概念不多,而且多为程序员所相熟。

假设你是一名程序员,把握Java对你来说是大海捞针的事。

即使你没有学过任何编程言语,学习Java也要比学习C++要容易的多。

你可能想看:
« 上一篇
下一篇 »

相关推荐

java中什么是冒泡,冒泡算法

2026年09月06日

27阅读

java中冒号,java双冒号

2026年09月06日

24阅读

java中的->,java中的是什么意思

2026年09月06日

24阅读

java中的super用法,Java中super的说明

2026年09月06日

27阅读

java中反射的应用,java中反射的应用场景

2026年09月06日

23阅读

java中开关的定义,Java关键字有哪些

2026年09月06日

25阅读