解析Java虚拟机开发

解析Java虚拟机开发

张善香, 编著

出版社:清华大学出版社

年代:2013

定价:69.0

书籍简介:

本书共17章分别讲解了Java相关知识,平台无关性、安全性、网络移动性相关知识,Java虚拟机相关知识,Java class,栈和局部变量,分析基本语法的内理,Java内存区域与内存溢出异常,垃圾收集器,内存分配与回收策略,企业级性能监控工具和优化部署,虚拟机类加载机制,虚拟机字节码执行引擎编译优化和运行优化,Java内存模型与线程,线程安全与锁优化等相关知识。

书籍目录:

第1章一起走进Java世界

1.1Java的优势

1.1.1排名第一的编程语言

1.1.2提供给我们美好的就业前景

1.2学习Java需要了解的那些事

1.2.1品Java语言的发展历史

1.2.2Java的特点

1.3剖析Java的运行机制

1.3.1高级语言的运行机制

1.3.2Java的运行机制

1.3.3Java虚拟机ⅧIVM

1.3.4独特的垃圾回收机制

1.4剖析Java语言体系

1.4.1Java程序员的6个级别

1.4.2分析Java体系的构成

1.5Java虚拟机家族

1.5.1虚拟机的用途

1.5.2理解Java虚拟机

1.5.3Java虚拟机的数据类型

1.5.4Java虚拟机体系结构

1.5.5探索Java虚拟机家族成员的发展史

1.6Java的最大优势——平台无关性

1.6.1平台无关性的好处

1.6.2Java对平台无关性的支持

1.6.3分析影响Java平台无关性的因素

1.6.4实现平台无关性的策略

第2章JDK编译测试

2.1为什么要编译JDK

2.2在Windows平台编译JDK

2.2.1为什么选择OpenjDK

2.2.2获取JDK源码

2.2.3系统需求

2.2.4构建编译环境

2.2.5准备依赖项

2.2.6开始编译

2.3在Linux平台编译JDK

第3章安全性的考虑

3.1为什么需要安全性

3.2沙箱模型的4种组件

3.2.1沙箱模型介绍

3.2.2类加载体系结构

3.2.3class文件检验器

3.2.4内置于Java虚拟机(及语言)的安全特性

3.2.5安全管理器和Java API

3.3浅谈安全管理器的必要性

3.3.1公正评论安全管理器优点和弱点

3.3.2方法check

3.4代码签名和认证

3.4.1代码签名和密钥

3.4.2代码签名示例

3.5策略机制和保护域

3.5.1分析Java的策略机制

3.5.2分析策略文件

3.5.3保护域

3.6访问控制器

3.6.1implies()方法

3.6.2栈检查演示实例

第4章通过网络实现移动性

4.1为什么需要网络移动性

4.2网络对软件的影响

4.2.1什么是网络

4.2.2计算机网络的发展历史

4.2.3网络应用形成了一种新的软件模式

4.3Java体系对网络的支持

4.3.1对网络安全的支持

4.3.2网络移动性

4.4applet演示

4.5JINI服务对象

4.5.1Java推出JINI的背景

4.5.2什么是JINI

4.5.3为什么需要JINI

4.5.4JINI的工作过程

4.5.5服务对象的优点

4.5.6JINI技术的运作

4.5.7如何启动JINI

第5章浅谈Java虚拟机的内部机制

5.1什么是虚拟机

5.1.1JVM简介

5.1.2JVM的组成部分

5.2Java虚拟机的生命周期

5.3Java虚拟机的体系结构

5.3.1数据类型

5.3.2“字”

5.3.3类装载器子系统

5.3.4方法区

5.3.5堆

5.3.6程序计数器

5.3.7Java栈

5.3.8栈帧

5.3.9本地方法栈

5.3.10执行引擎

5.3.11本地方法接口

5.4Java对象池技术的原理及其实现

5.4.1对象池技术的基本原理

5.4.2通用对象池的实现

5.4.3专用对象池的实现

第6童详解Class文件

6.1Class介绍

6.2Java Class文件的格式

6.3常量池的具体结构

6.4特殊字符串

6.4.1全限定名

6.4.2简单名称

6.4.3描述符

6.5常量池

6.5.1OCNSTANT_Utf8_info表

6.5.2CQNSTANT_Integerjnfo表

6.5.3CONSTANT_Float_info表

6.5.4CONSTANT_Long_info表

6.5.5CONSTANT_Double_info表

6.5.6CONSTANT_Class_info表

6.5.7CONSTANT_String_info表

6.5.8CONSTANT_Fieldref_info表

6.5.9CONSTANT_Methodref_info表

6.5.10CONSTANT_InterfaceMethodref_info表

6.5.11CONSTANT_NameAndType_info表

6.6字段

6.7方法

6.8属性

6.8.1属性格式

6.8.2Code属性

6.8.3ConstantValue属性

6.8.4Deprecated属性

6.8.5Exception属性

6.8.6InnerClasses属性

6.9JVM加载Class文件的原理

6.9.1Java中的类文件

6.9.2JVM加载Class文件

第7章栈和局部变量操作

7.1类型装载、连接和初始化

7.1.1装载

7.1.2验证

7.1.3准备

7.1.4解析

7.1.5初始化

7.2对象的生命周期

7.3卸载类型

7.3.1卸载类型基础

7.3.2unreachable状态的作用

7.3.3类型更新

7.4常量入栈操作

第8章内存异常和垃圾处理

8.1Java的内存分配管理

8.1.1内存分配中的栈和堆

8.1.2堆和栈的合作

8.2运行时的数据区域

8.2.1程序计数器(Program Counter Register)

8.2.2Java的虚拟机栈VM Stack

8.2.3本地方法栈Native Method Stack

8.2.4Java堆Java Heap

8.2.5方法区Method Area

8.2.6运行时常量池Runtime Constant Pool

8.2.7直接内存(Direct Memory)

8.3对象访问

8.3.1对象访问基础

8.3.2具体测试

8.4内存泄露

8.4.1内存泄露的分类

8.4.2内存泄露的定义

8.4.3内存泄露的常见问题和后果

8.4.4检测内存泄露

8.5垃圾收集初探

8.5.1何谓垃圾收集

8.5.2常见的垃圾收集策略

8.5.3JVM的垃圾收集策略

8.6对象的生死

8.6.1引用计数算法(Reference Couming)

8.6.2根搜索算法

8.6.3再谈引用

8.6.4生存还是死亡

8.6.5回收方法区

8.7垃圾收集算法

8.7.1标记—清除算法

8.7.2复制算法

8.7.3标记—整理算法

8.7.4分代收集算法

8.8垃圾收集器

8.8.1Serial收集器

8.8.2ParNew收集器

8.8.3Parallel Scavenge收集器

8.8.4Serial Old收集器

8.8.5Parallel Old收集器

8.8.6CMS收集器

8.8.7G1收集器

8.8.8垃圾收集器参数总结

8.9内存分配与回收策略

8.9.1对象优先在Eden分配

8.9.2大对象直接进入老年代

8.9.3长期存活的对象将进入老年代

8.9.4动态对象年龄判定

8.9.5空间分配担保

第9章高效手段之性能监控工具和优化部署

9.1JDK的命令行工具

9.1.1jps:虚拟机进程状况工具

9.1.2jstat:虚拟机统计信息监视工具

9.1.3jinfo:Java配置信息工具

9.1.4jmap:Java内存映像工具

9.1.5jhat:虚拟机堆转储快照分析工具

9.1.6jstack:Java堆栈跟踪工具

9.2JDK的可视化工具

9.2.1JConsole:Java监视与管理控制台

9.2.2VisuaIVM:多合一故障处理工具

第10章JVM参数分析和调优实战

10.1捕鱼工具选择——JVM参数

10.1.1通用的JVM参数

10.1.2串行收集器参数

10.1.3并行收集器参数

10.1.4并发收集器参数

10.2测试调优

10.2.1测试环境准备

10.2.2录制测试脚本

10.2.3定义测试场景

10.2.4执行初步性能测试

10.2.5选择调优方案

10.2.6调优后JVM监控图

10.2.7测试结果分析

10.3性能问题举例

10.3.1查看监控结果

10.3.2原因分析

10.4调优案例分析

10.4.1高性能硬件上的程序部署策略

10.4.2堆外内存导致的溢出错误

10.4.3外部命令导致系统缓慢

10.4.4服务器JVM进程崩溃

10.5Eclipse调优

10.5.1Eclipse快捷键

10.5.2启动运行速度调优

10.5.3调优前的程序运行状态

第11章虚拟机类的加载机制

11.1虚拟机类的加载

11.2类的加载过程

11.2.1加载

11.2.2验证

11.2.3准备

11.2.4解析

11.2.5初始化

11.3类加载器

11.3.1类加载器的基础知识

11.3.2JVM启动时的三个类加载器

11.3.3双亲委派模型

11.3.4破坏双亲委派模型

11.3.5开发自己的类加载器

11.3.6类加载器与Web容器

11.3.7类加载器与OSGi

第12章研究高效之魂

12.1虚拟机的字节码

12.2栈帧的结构

12.2.1什么是栈帧

12.2.2局部变量表

12.2.3操作数栈

12.2.4动态连接

12.2.5方法返回地址

12.2.6附加信息

12.3方法调用

12.3.1方法调用的背景

12.3.2解析

12.3.3分派

12.4基于栈的字节码解释执行引擎

12.4.1解释执行

12.4.2基于栈的指令集与基于寄存器的指令集

12.4.3基于栈的解释器执行过程,

第13章类加载器和执行子系统

13.1分析Tomcat类加载器的架构

13.1.1Tomcat目录结构

13.1.2定义公共类加载器

13.1.3初始化catalina守护程序

13.1.4Tomcat内部初始化类加载器

13.2OSGi的类加载器架构

13.3字节码生成技术

13.4动态代理

13.4.1代理模式

13.4.2相关的类和接口

13.4.3代理机制及其特点

13.4.4应用动态代理

……

第14章编译优化

第15章运行期优化

第16章内存模型和线程

第17章安全和优化合二为一

内容摘要:

本书细致分析了Java虚拟机开发的基本知识,为读者权衡出优化、高效和安全的最优方案。本书内容新颖、知识全面、讲解详细,全书共17章,第1章讲解一起走进Java世界的基本知识;第2章讲解JDK编译测试的基础知识;第3章讲解安全性考虑的核心知识;第4章讲解通过网络实现移动性的知识;第5章浅谈Java虚拟机内部机制的基础知识;第6章深入分析class文件的核心知识;第7章详细讲解栈和局部变量操作的知识;第8章深入详解内存异常和垃圾处理的基本知识;第9章讲解高效手段之性能监控工具和优化部署的核心知识;第10章讲解JVM参数分析和调优实战的知识;第11章讲解虚拟机类加载机制的基本知识;第12章讲解研究高效之魂;第13章讲解类加载器和执行子系统的基本知识;第14章讲解编译优化的基本知识;第15章讲解运行期优化的基本知识;第16章讲解内存模型和线程的基本知识;第17章讲解如何将安全和优化合二为一。全书内容循序渐进,并且逐一做到了深入剖析。本书适合Java各个级别的程序员、研发人员及在职程序员,也可以作为相关培训学校和大专院校相关专业的教学用书。

编辑推荐:

本书彻底摒弃枯燥的理论和简单的操作,注重实用性和可操作性,介绍了JDK编译测试、虚拟机的内部机制、Class文件、栈和局部变量操作、内存异常、垃圾处理、性能监控工具、类加载器和执行子系统、编译优化等内容。让读者在没有编程基础的情况下,也可以掌握相关的操作技能,让读者学得更充实,更有针对性。

书籍规格:

书籍详细信息
书名解析Java虚拟机开发站内查询相似图书
9787302314943
如需购买下载《解析Java虚拟机开发》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位清华大学出版社
版次1版印次1
定价(元)69.0语种简体中文
尺寸26 × 19装帧平装
页数印数 4000

书籍信息归属:

解析Java虚拟机开发是清华大学出版社于2013.出版的中图分类号为 TP312 的主题关于 JAVA语言-程序设计 的书籍。