图书介绍
解析Java虚拟机开发 权衡优化、高效和安全的最优方案【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

- 张善香编著 著
- 出版社: 北京:清华大学出版社
- ISBN:9787302314943
- 出版时间:2013
- 标注页数:485页
- 文件大小:243MB
- 文件页数:496页
- 主题词:JAVA语言-程序设计
PDF下载
下载说明
解析Java虚拟机开发 权衡优化、高效和安全的最优方案PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 一起走进Java世界1
1.1 Java的优势2
1.1.1排名第一的编程语言2
1.1.2提供给我们美好的就业前景2
1.2学习Java需要了解的那些事3
1.2.1品Java语言的发展历史3
1.2.2 Java的特点4
1.3剖析Java的运行机制5
1.3.1高级语言的运行机制5
1.3.2 Java的运行机制5
1.3.3 Java虚拟机——JVM7
1.3.4独特的垃圾回收机制8
1.4剖析Java语言体系9
1.4.1 Java程序员的6个级别9
1.4.2分析Java体系的构成11
1.5 Java虚拟机家族12
1.5.1虚拟机的用途12
1.5.2理解Java虚拟机12
1.5.3 Java虚拟机的数据类型13
1.5.4 Java虚拟机体系结构14
1.5.5探索Java虚拟机家族成员的发展史16
1.6 Java的最大优势——平台无关性19
1.6.1平台无关性的好处21
1.6.2 Java对平台无关性的支持22
1.6.3分析影响Java平台无关性的因素24
1.6.4实现平台无关性的策略27
第2章 JDK编译测试29
2.1为什么要编译JDK30
2.2在Windows平台编译JDK30
2.2.1为什么选择OpenJDK30
2.2.2获取JDK源码30
2.2.3系统需求31
2.2.4构建编译环境32
2.2.5准备依赖项43
2.2.6开始编译45
2.3在Linux平台编译JDK47
第3章 安全性的考虑53
3.1为什么需要安全性54
3.2沙箱模型的4种组件55
3.2.1沙箱模型介绍55
3.2.2类加载体系结构55
3.2.3 class文件检验器60
3.2.4内置于Java虚拟机(及语言)的安全特性64
3.2.5安全管理器和Java API66
3.3浅谈安全管理器的必要性68
3.3.1公正评论安全管理器优点和弱点68
3.3.2方法check69
3.4代码签名和认证71
3.4.1代码签名和密钥71
3.4.2代码签名示例73
3.5策略机制和保护域75
3.5.1分析Java的策略机制76
3.5.2分析策略文件77
3.5.3保护域79
3.6访问控制器79
3.6.1 implies()方法80
3.6.2栈检查演示实例82
第4章 通过网络实现移动性85
4.1为什么需要网络移动性86
4.2网络对软件的影响87
4.2.1什么是网络87
4.2.2计算机网络的发展历史88
4.2.3网络应用形成了一种新的软件模式88
4.3 Java体系对网络的支持90
4.3.1对网络安全的支持90
4.3.2网络移动性95
4.4 applet演示97
4.5 JINI服务对象98
4.5.1 Java推出JIM的背景98
4.5.2 什么是JIM99
4.5.3为什么需要JINI100
4.5.4 JINI的工作过程101
4.5.5服务对象的优点104
4.5.6 JINI技术的运作106
4.5.7如何启动JINI107
第5章 浅谈Java虚拟机的内部机制111
5.1什么是虚拟机112
5.1.1 JVM简介112
5.1.2 JVM的组成部分112
5.2 Java虚拟机的生命周期113
5.3 Java虚拟机的体系结构114
5.3.1数据类型117
5.3.2“字”119
5.3.3类装载器子系统119
5.3.4方法区121
5.3.5堆125
5.3.6程序计数器130
5.3.7 Java栈130
5.3.8栈帧130
5.3.9本地方法栈134
5.3.10执行引擎135
5.3.11本地方法接口143
5.4 Java对象池技术的原理及其实现144
5.4.1对象池技术的基本原理145
5.4.2通用对象池的实现146
5.4.3专用对象池的实现148
第6章 详解Class文件149
6.1 Class介绍150
6.2 Java Class文件的格式151
6.3常量池的具体结构155
6.4特殊字符串162
6.4.1全限定名162
6.4.2简单名称162
6.4.3描述符162
6.5常量池163
6.5.1 OCNSTANT Utf8 info表163
6.5.2 CONSTANT Integer info表165
6.5.3 CONSTANT Float info表165
6.5.4 CONSTANT Long info表165
6.5.5 CONSTANT Double info表166
6.5.6 CONSTANT Class info表166
6.5.7 CONSTANT String info表167
6.5.8 CONSTANT Fieldref info表167
6.5.9 CONSTANT Melhodref info表168
6.5.10 CONSTANT InterfaceMethodref info表168
6.5.11 CONSTANT NameAndType-info表169
6.6字段169
6.7方法170
6.8属性171
6.8.1属性格式171
6.8.2 Code属性172
6.8.3 ConstantValue属性173
6.8.4 Deprecated属性173
6.8.5 Exception属性173
6.8.6 InnerClasses属性174
6.9 JVM加载Class文件的原理174
6.9.1 Java中的类文件174
6.9.2 JVM加载Class文件176
第7章 栈和局部变量操作179
7.1类型装载、连接和初始化180
7.1.1装载181
7.1.2验证182
7.1.3准备184
7.1.4解析184
7.1.5初始化184
7.2对象的生命周期185
7.3卸载类型189
7.3.1卸载类型基础189
7.3.2 unreachable状态的作用189
7.3.3类型更新193
7.4常量入栈操作195
第8章 内存异常和垃圾处理205
8.1 Java的内存分配管理206
8.1.1内存分配中的栈和堆206
8.1.2堆和栈的合作209
8.2运行时的数据区域213
8.2.1程序计数器(Program Counter Register)213
8.2.2 Java的虚拟机栈VM Stack214
8.2.3本地方法栈Native Method Stack215
8.2.4 Java堆Java Heap215
8.2.5方法区Method Area216
8.2.6运行时常量池Runtime Constant Pool217
8.2.7直接内存(Direct Memory)217
8.3对象访问218
8.3.1对象访问基础218
8.3.2具体测试220
8.4内存泄露227
8.4.1内存泄露的分类227
8.4.2内存泄露的定义227
8.4.3内存泄露的常见问题和后果228
8.4.4检测内存泄露229
8.5垃圾收集初探230
8.5.1何谓垃圾收集230
8.5.2常见的垃圾收集策略230
8.5.3 JVM的垃圾收集策略232
8.6对象的生死233
8.6.1引用计数算法(Reference Counting)234
8.6.2根搜索算法235
8.6.3再谈引用236
8.6.4生存还是死亡236
8.6.5回收方法区238
8.7垃圾收集算法239
8.7.1标记-清除算法239
8.7.2复制算法240
8.7.3标记-整理算法241
8.7.4分代收集算法241
8.8垃圾收集器242
8.8.1 Serial收集器243
8.8.2 ParNew收集器243
8.8.3 Parallel Scavenge收集器244
8.8.4 Serial Old收集器245
8.8.5 Parallel Old收集器245
8.8.6 CMS收集器246
8.8.7 G1收集器247
8.8.8垃圾收集器参数总结248
8.9内存分配与回收策略249
8.9.1对象优先在Eden分配249
8.9.2大对象直接进入老年代251
8.9.3长期存活的对象将进入老年代252
8.9.4动态对象年龄判定253
8.9.5空间分配担保254
第9章 高效手段之性能监控工具和优化部署257
9.1 JDK的命令行工具258
9.1.1 jps:虚拟机进程状况工具260
9.1.2 jstat:虚拟机统计信息监视工具261
9.1.3 jinfo: Java配置信息工具266
9.1.4 jmap: Java内存映像工具266
9.1.5 jhat:虚拟机堆转储快照分析工具267
9.1.6 jstack: Java堆栈跟踪工具268
9.2 JDK的可视化工具269
9.2.1 JConsole: Java监视与管理控制台269
9.2.2 VisuaIVM:多合一故障处理工具275
第10章 JVM参数分析和调优实战279
10.1捕鱼工具选择——JVM参数280
10.1.1通用的JVM参数280
10.1.2串行收集器参数282
10.1.3并行收集器参数282
10.1.4并发收集器参数283
10.2测试调优284
10.2.1测试环境准备284
10.2.2录制测试脚本285
10.2.3定义测试场景285
10.2.4执行初步性能测试286
10.2.5选择调优方案286
10.2.6调优后JVM监控图288
10.2.7测试结果分析292
10.3性能问题举例292
10.3.1查看监控结果292
10.3.2原因分析295
10.4调优案例分析296
10.4.1高性能硬件上的程序部署策略296
10.4.2堆外内存导致的溢出错误298
10.4.3外部命令导致系统缓慢299
10.4.4服务器JVM进程崩溃299
10.5 Eclipse调优300
10.5.1 Eclipse快捷键300
10.5.2启动运行速度调优302
10.5.3调优前的程序运行状态303
第11章 虚拟机类的加载机制307
11.1虚拟机类的加载308
11.2类的加载过程311
11.2.1加载311
11.2.2验证312
11.2.3准备315
11.2.4解析315
11.2.5初始化318
11.3类加载器321
11.3.1类加载器的基础知识321
11.3.2 JVM启动时的三个类加载器327
11.3.3双亲委派模型334
11.3.4破坏双亲委派模型335
11.3.5开发自己的类加载器337
11.3.6类加载器与Web容器339
11.3.7类加载器与OSGi339
第12章 研究高效之魂341
12.1虚拟机的字节码342
12.2栈帧的结构343
12.2.1什么是栈帧344
12.2.2局部变量表345
12.2.3操作数栈348
12.2.4动态连接349
12.2.5方法返回地址349
12.2.6 附加信息350
12.3方法调用350
12.3.1方法调用的背景350
12.3.2解析352
12.3.3分派353
12.4基于栈的字节码解释执行引擎360
12.4.1解释执行360
12.4.2基于栈的指令集与基于寄存器的指令集361
12.4.3基于栈的解释器执行过程362
第13章 类加载器和执行子系统365
13.1分析Tomcat类加载器的架构366
13.1.1 Tomcat目录结构366
13.1.2定义公共类加载器368
13.1.3初始化catalina守护程序369
13.1.4 Tomcat内部初始化类加载器370
13.2 OSGi的类加载器架构375
13.3字节码生成技术377
13.4动态代理378
13.4.1代理模式378
13.4.2相关的类和接口379
13.4.3代理机制及其特点380
13.4.4应用动态代理382
第14章 编译优化393
14.1 Java的编译过程394
14.2 Java编译优化简介395
14.3 Javac编译器397
14.3.1 Javac命令详解397
14.3.2 Javac源码与调试400
14.3.3解析与填充符号表401
14.3.4注解处理器402
14.3.5语义分析与字节码生成402
14.3.6 Javac编译实例405
14.3.7 Javac的源码与调试406
14.4 Java语法糖的味道407
14.4.1泛型与类型擦除407
14.4.2自动装箱、拆箱与遍历循环410
14.4.3条件编译411
14.5插入式注解处理器413
14.5.1插入式注解处理API基础413
14.5.2实战416
第15章 运行期优化423
15.1运行期优化简介424
15.2 HotSpot虚拟机内的即时编译器424
15.2.1 HotSpot虚拟机的背景424
15.2.2解释器与编译器427
15.2.3编译对象与触发条件428
15.2.4编译过程430
15.2.5查看与分析即时编译结果431
15.3编译优化技术433
15.3.1优化技术概览433
15.3.2公共子表达式消除436
15.3.3数组边界检查消除437
15.3.4方法内联437
15.3.5逃逸分析439
15.4 Java与C/C++的编译器对比440
第16章 内存模型和线程443
16.1 Java的多线程444
16.2硬件的效率与一致性445
16.3 Java内存模型446
16.3.1 Java内存模型概述446
16.3.2主内存与工作内存449
16.3.3内存间交互操作449
16.3.4 volatile型变量451
16.3.5 long和double型变量457
16.3.6原子性、可见性与有序性458
16.3.7先行发生原则459
16.4线程460
16.4.1线程的实现460
16.4.2线程调度462
16.4.3线程状态间的转换463
第17章 安全和优化合二为一469
17.1线程安全470
17.1.1 Java中的线程安全470
17.1.2线程安全的实现方法473
17.1.3无状态类478
17.2锁优化480
17.2.1自旋锁与自适应自旋480
17.2.2锁消除481
17.2.3锁膨胀482
17.2.4轻量级锁482
17.2.5偏向锁484
热门推荐
- 3529482.html
- 2117041.html
- 3199909.html
- 249670.html
- 2855466.html
- 2386672.html
- 217367.html
- 3687522.html
- 3253709.html
- 1361926.html
- http://www.ickdjs.cc/book_1927331.html
- http://www.ickdjs.cc/book_797749.html
- http://www.ickdjs.cc/book_3741946.html
- http://www.ickdjs.cc/book_528284.html
- http://www.ickdjs.cc/book_2437215.html
- http://www.ickdjs.cc/book_291523.html
- http://www.ickdjs.cc/book_1231829.html
- http://www.ickdjs.cc/book_1544336.html
- http://www.ickdjs.cc/book_3538530.html
- http://www.ickdjs.cc/book_1742349.html