《深入分析JavaWeb技术内幕》PDF 下载

896 阅读15分钟

《深入分析JavaWeb技术内幕》

链接: pan.baidu.com/s/18kVo23Ea… 提取码: vivd

《深入分析Java Web技术内幕(修订版)》新增了淘 宝在无线端的应用实践,包括:CDN 动态加速、多终端化改造、 多终端Session 统一 ,以及在大流量的情况下,如何跨越性能、网络和一个地区的电力瓶颈等内容,并提供了比较完整的解决方案。

《深入分析Java Web技术内幕(修订版)》主要围绕Java Web 相关技术从三方面全面、深入地进行了阐述。首先介绍前端知识,即在JavaWeb 开发中涉及的一些基本知识,包括Web 请求过程、HTTP、DNS 技术和CDN 技术。其次深入介绍了Java 技术,包括I/O 技术、中文编码问题、Javac 编译原理、class 文件结构解析、ClassLoader 工作机制及JVM 的内存管理等。最后介绍了Java 服务端技术,主要包括Servlet、Session 与Cookie、Tomcat 与Jetty服务器、Spring 容器、iBatis 框架和Velocity 框架等原理介绍,并介绍了服务端的一些优化技术。

《深入分析Java Web技术内幕(修订版)》不仅介绍这些技术和框架的工作原理,而且结合示例来讲解,通过通俗易懂的文字和丰富、生动的配图,让读者充分并深入理解它们的内部工作原理,同时还结合了设计模式来介绍这些技术背后的架构思维。

目录
第1章 深入Web请求过程 1
11 B/S网络架构概述 2
12 如何发起一个请求 4
13 HTTP协议解析 6
131 查看HTTP信息的工具 8
132 浏览器缓存机制 9
14 DNS域名解析 12
141 DNS域名解析过程 12
142 跟踪域名解析过程 15
143 清除缓存的域名 18
144 几种域名解析方式 19
15 CDN工作机制 20
151 CDN架构 20
152 负载均衡 21
153 CDN动态加速 24
16 总结 252章 深入分析Java I/O的工作机制 26
21 JavaI/O类库的基本架构 26
211 基于字节的I/O操作接口 27
212 基于字符的I/O操作接口 28
213 字节与字符的转化接口 29
22 磁盘I/O工作机制 30
221 几种访问文件的方式 30
222 Java访问磁盘文件 34
223 Java序列化技术 35
23 网络I/O工作机制 37
231 TCP状态转化 38
232 影响网络传输的因素 40
233 Java Socket的工作机制 40
234 建立通信链路 41
235 数据传输 42
24 NIO的工作方式 42
241 BIO带来的挑战 42
242 NIO的工作机制 43
243 Buffer的工作方式 46
244 NIO的数据访问方式 48
25 I/O调优 50
251 磁盘I/O优化 50
252 TCP网络参数调优 51
253 网络I/O优化 53
26 设计模式解析之适配器模式 57
261 适配器模式的结构 57
262 Java I/O中的适配器模式 58
27 设计模式解析之装饰器模式 58
271 装饰器模式的结构 59
272 Java I/O中的装饰器模式 59
28 适配器模式与装饰器模式的区别 60
29 总结 603章 深入分析Java Web中的中文编码问题 61
31 几种常见的编码格式 61
311 为什么要编码 61
312 如何“翻译” 62
32Java中需要编码的场景 64
321I/O操作中存在的编码 64
322 在内存操作中的编码 66
33Java中如何编解码 67
331 按照ISO-8859-1编码 69
332 按照GB2312编码 70
333 按照GBK编码 71
334 按照UTF-16编码 71
335 按照UTF-8编码 72
336 UTF-8编码代码片段 72
337 对几种编码格式的比较 74
34Java Web中涉及的编解码 74
341 URL的编解码 76
342 HTTP Header的编解码 79
343 POST表单的编解码 79
344 HTTP BODY的编解码 80
35 JS中的编码问题 81
351 外部引入JS文件 81
352 JSURL编码 82
353 其他需要编码的地方 84
36 常见问题分析 84
361 中文变成了看不懂的字符 84
362 一个汉字变成一个问号 85
363 一个汉字变成两个问号 85
364 一种不正常的正确编码 86
37 一种繁简转换的实现方式 87
38 总结 884Javac编译原理 89
41 Javac是什么 90
42 Javac编译器的基本结构 90
43 Javac工作原理分析 92
431 词法分析器 93
432 语法分析器 100
433 语义分析器 105
434 代码生成器 115
44 设计模式解析之访问者模式 118
441 访问者模式的结构 119
442 Javac中访问者模式的实现 120
45 总结 1215章 深入class文件结构 122
51 JVM指令集简介 122
511 与类相关的指令 124
512 方法的定义 125
513 属性的定义 126
514 其他指令集 127
52 class文件头的表示形式 135
53 常量池 139
531 UTF8常量类型 142
532 FieldrefMethodref常量类型 143
533 Class常量类型 143
534 NameAndType常量类型 144
54 类信息 144
55 FieldsMethods定义 145
56 类属性描述 149
57 Javap生成的class文件结构 150
571 LineNumberTable 152
572 LocalVariableTable 153
58 总结 1556章 深入分析ClassLoader工作机制 156
61 ClassLoader类结构分析 157
62 ClassLoader的等级加载机制 158
63 如何加载class文件 161
631 加载字节码到内存 161
632 验证与解析 163
633 初始化Class对象 163
64 常见加载类错误分析 163
641 ClassNotFoundException 163
642 NoClassDefFoundError 164
643 UnsatisfiedLinkError 165
644 ClassCastException 166
645 ExceptionInInitializerError 167
65 常用的ClassLoader分析 168
66 如何实现自己的ClassLoader 172
661 加载自定义路径下的class文件 172
662 加载自定义格式的class文件 174
67 实现类的热部署 176
68 Java应不应该动态加载类 178
69 总结 1797JVM体系结构与工作方式 180
71 JVM体系结构 180
711 何谓JVM 180
712 JVM体系结构详解 183
72 JVM工作机制 185
721 机器如何执行代码 185
722 JVM为何选择基于栈的架构 186
723 执行引擎的架构设计 187
724 执行引擎的执行过程 188
725 JVM方法调用栈 193
73 总结 1978JVM内存管理 198
81 物理内存与虚拟内存 199
82 内核空间与用户空间 200
83Java中哪些组件需要使用内存 201
831 Java201
832 线程 201
833 类和类加载器 202
834 NIO 202
835 JNI 203
84 JVM内存结构 203
841 PC寄存器 204
842 Java204
843205
844 方法区 205
845 运行时常量池 206
846 本地方法栈 206
85 JVM内存分配策略 206
851 通常的内存分配策略 207
852 Java中的内存分配详解 207
86 JVM内存回收策略 212
861 静态内存分配和回收 212
862 动态内存分配和回收 213
863 如何检测垃圾 213
864 基于分代的垃圾收集算法 215
87 内存问题分析 224
871 GC日志分析 224
872 堆快照文件分析 227
873 JVM Crash日志分析 227
88 实例1 233
89 实例2 235
810 实例3 237
811 总结 2429Servlet工作原理解析 243
91Servlet容器说起 243
911 Servlet容器的启动过程 244
912 Web应用的初始化工作 247
92 创建Servlet实例 249
921 创建Servlet对象 250
922 初始化Servlet 250
93 Servlet体系结构 252
94 Servlet如何工作 255
95 Servlet中的Listener 257
96 Filter如何工作 259
97 Servlet中的url-pattern 261
98 总结 26210章 深入理解SessionCookie 263
101 理解Cookie 264
1011 Cookie属性项 264
1012 Cookie如何工作 265
1013 使用Cookie的限制 268
102 理解Session 269
1021 SessionCookie 269
1022 Session如何工作 270
103 Cookie安全问题 273
104 分布式Session框架 274
1041 存在哪些问题 274
1042 可以解决哪些问题 275
1043 总体实现思路 275
105 Cookie压缩 280
106 表单重复提交问题 282
107 多终端Session统一 283
108 总结 28511Tomcat的系统架构与设计模式 286
111 Tomcat总体设计 286
1111 Tomcat总体结构 287
1112 Connector组件 293
1113 Servlet容器Container 298
1114 Tomcat中的其他组件 309
112 Tomcat中的设计模式 309
1121 门面设计模式 309
1122 观察者设计模式 311
1123 命令设计模式 313
1124 责任链设计模式 314
113 总结 31612Jetty的工作原理解析 317
121 Jetty的基本架构 317
1211 Jetty的基本架构简介 317
1212 Handler的体系结构 319
122 Jetty的启动过程 320
123 接受请求 321
1231 基于HTTP协议工作 321
1232 基于AJP工作 323
1233 基于NIO方式工作 326
124 处理请求 327
125JBoss集成 330
126Tomcat的比较 331
1261 架构比较 331
1262 性能比较 332
1263 特性比较 332
127 总结 33313Spring框架的设计理念与设计模式分析 334
131 Spring的骨骼架构 334
1311 Spring的设计理念 335
1312 核心组件如何协同工作 336
132 核心组件详解 337
1321 Bean组件 337
1322 Context组件 339
1323 Core组件 340
1324 Ioc容器如何工作 342
133 SpringAOP的特性详解 352
1331 动态代理的实现原理 352
1332 Spring AOP如何实现 355
134 设计模式解析之代理模式 358
1341 代理模式原理 358
1342 Spring中代理模式的实现 358
135 设计模式解析之策略模式 361
1351 策略模式原理 361
1352 Spring中策略模式的实现 362
136 总结 36214Spring MVC工作机制与设计模式 364
141 Spring MVC的总体设计 364
142 Control设计 369
1421 HandlerMapping初始化 370
1422 HandlerAdapter初始化 372
1423 Control的调用逻辑 373
143 Model设计 374
144 View设计 375
145 框架设计的思考 377
1451 为什么需要框架 377
1452 需要什么样的框架 377
1453 框架设计的原则 378
1454 “指航灯” 378
1455 最基本的原则 378
146 设计模式解析之模板模式 379
1461 模板模式的结构 379
1462 Spring MVC中的模板模式示例 379
147 总结 38015章 深入分析Ibatis框架之系统架构与映射原理 381
151 Ibatis框架主要的类层次结构 381
152 Ibatis框架的设计策略 382
153 Ibatis框架的运行原理 384
154 示例 386
155 IbatisSQL语句的解析 388
156 数据库字段映射到Java对象 389
157 示例运行的结果 391
158 设计模式解析之简单工厂模式 391
1581 简单工厂模式的实现原理 391
1582Ibatis中的简单工厂模式示例 392
159 设计模式解析之工厂模式 393
1591 工厂模式的实现原理 393
1592 Ibatis中的工厂模式示例 394
1510 总结 39516Velocity工作原理解析 397
161 Velocity总体架构 398
162 JJTree渲染过程解析 401
1621 #set语法 405
1622 Velocity的方法调用 406
1623 #if#elseif#else语法 409
1624 #foreach语法 410
1625 #parse语法 412
163 事件处理机制 413
164 常用优化技巧 416
1641 减少树的总节点数量 416
1642 减少渲染耗时的节点数量 416
165JSP比较 417
1651 JSP渲染机制 417
1652 VelocityJSP 423
166 设计模式解析之合成模式 423
1661 合成模式的结构 423
1662 Velocity中合成模式的实现 424
167 设计模式解析之解释器模式 425
1671 解释器模式的结构 425
1672 Velocity中解释器模式的实现 426
168 总结 42617Velocity优化实践 427
171 现实存在的问题 427
172 优化的理论基础 428
1721 程序语言的三角形结构 428
1722 数据结构减少抽象化 429
1723 简单的程序复杂化 429
1724 减少翻译的代价 430
1725 变的转化为不变 430
173 一个高效的模板引擎的实现思路 430
1731 vm模板如何被编译 432
1732 方法调用的无反射优化 439
1733 将字符输出改成字节输出 442
174 优化的成果 443
1741char转成byte 443
1742 无反射执行 444
175 其他优化手段 445
176 总结 44518章 大浏览量系统的静态化架构设计 446
181 淘宝大浏览量商品详情系统简介 446
182 系统面临哪些挑战 447
183 淘宝前台系统的优化历程 449
184 大浏览量系统的静态改造 449
1841 什么是静态化系统 449
1842 为什么要进行静态化架构设计 450
1843 如何改造动态系统 451
1844 几种静态化方案的设计及选择 453
1845 如何解决失效问题 458
1846 服务端静态化方案的演进:CDN459
185 总结 462