深入分析Java Web技术内幕
正版图书塑封 14点之前订单当日发货 8952042075908472834
¥
12.94
1.6折
¥
79
九品
库存2件
作者许令波 著
出版社电子工业出版社
出版时间2014-08
版次1
装帧平装
货号8952042075908472834
上书时间2024-12-14
商品详情
- 品相描述:九品
图书标准信息
-
作者
许令波 著
-
出版社
电子工业出版社
-
出版时间
2014-08
-
版次
1
-
ISBN
9787121232930
-
定价
79.00元
-
装帧
平装
-
开本
16开
-
纸张
轻型纸
-
页数
464页
-
字数
600千字
-
正文语种
简体中文
-
丛书
阿里巴巴集团技术丛书
- 【内容简介】
-
《深入分析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技术内幕(修订版)》不仅介绍这些技术和框架的工作原理,而且结合示例来讲解,通过通俗易懂的文字和丰富、生动的配图,让读者充分并深入理解它们的内部工作原理,同时还结合了设计模式来介绍这些技术背后的架构思维。
- 【作者简介】
-
2009年加入淘宝,一直关注性能优化领域,经历了淘宝PV从1亿到10亿的发展历程,参与了淘宝高访问量Web系统模板引擎的改造、静态化、无线化、CDN等优化改造项目。
先后研究过分布式数据库Cassandra系统、Tomcat、Jetty等系统的源码。一直参与淘宝访问量高的系统页面详情系统的优化工作,设计并实现了sketch模板引擎、MVC框架Feiba等,将服务端性能提升近50%左右;所在的性能优化小组一直在做详情的前端优化,将详情页的首屏展示时间缩短为1s之内。
- 【目录】
-
第1章 深入Web请求过程1
1.1 B/S网络架构概述2
1.2 如何发起一个请求4
1.3 HTTP协议解析6
1.3.1 查看HTTP信息的工具8
1.3.2 浏览器缓存机制9
1.4 DNS域名解析12
1.4.1 DNS域名解析过程12
1.4.2 跟踪域名解析过程15
1.4.3 清除缓存的域名18
1.4.4 几种域名解析方式19
1.5 CDN工作机制20
1.5.1 CDN架构20
1.5.2 负载均衡21
1.5.3 CDN动态加速24
1.6 总结25
第2章 深入分析Java I/O的工作机制26
2.1 Java的I/O类库的基本架构26
2.1.1 基于字节的I/O操作接口27
2.1.2 基于字符的I/O操作接口28
2.1.3 字节与字符的转化接口29
2.2 磁盘I/O工作机制30
2.2.1 几种访问文件的方式30
2.2.2 Java访问磁盘文件34
2.2.3 Java序列化技术35
2.3 网络I/O工作机制37
2.3.1 TCP状态转化38
2.3.2 影响网络传输的因素40
2.3.3 Java Socket的工作机制40
2.3.4 建立通信链路41
2.3.5 数据传输42
2.4 NIO的工作方式42
2.4.1 BIO带来的挑战42
2.4.2 NIO的工作机制43
2.4.3 Buffer的工作方式46
2.4.4 NIO的数据访问方式48
2.5 I/O调优50
2.5.1 磁盘I/O优化50
2.5.2 TCP网络参数调优51
2.5.3 网络I/O优化53
2.6 设计模式解析之适配器模式57
2.6.1 适配器模式的结构57
2.6.2 Java I/O中的适配器模式58
2.7 设计模式解析之装饰器模式58
2.7.1 装饰器模式的结构59
2.7.2 Java I/O中的装饰器模式59
2.8 适配器模式与装饰器模式的区别60
2.9 总结60
第3章 深入分析Java Web中的中文编码问题61
3.1 几种常见的编码格式61
3.1.1 为什么要编码61
3.1.2 如何“翻译”62
3.2 在Java中需要编码的场景64
3.2.1 在I/O操作中存在的编码64
3.2.2 在内存操作中的编码66
3.3 在Java中如何编解码67
3.3.1 按照ISO-8859-1编码69
3.3.2 按照GB2312编码70
3.3.3 按照GBK编码71
3.3.4 按照UTF-16编码71
3.3.5 按照UTF-8编码72
3.3.6 UTF-8编码代码片段72
3.3.7 对几种编码格式的比较74
3.4 在Java Web中涉及的编解码74
3.4.1 URL的编解码76
3.4.2 HTTP Header的编解码79
3.4.3 POST表单的编解码79
3.4.4 HTTP BODY的编解码80
3.5 JS中的编码问题81
3.5.1 外部引入JS文件81
3.5.2 JS的URL编码82
3.5.3 其他需要编码的地方84
3.6 常见问题分析84
3.6.1 中文变成了看不懂的字符84
3.6.2 一个汉字变成一个问号85
3.6.3 一个汉字变成两个问号85
3.6.4 一种不正常的正确编码86
3.7 一种繁简转换的实现方式87
3.8 总结88
第4章 Javac编译原理89
4.1 Javac是什么90
4.2 Javac编译器的基本结构90
4.3 Javac工作原理分析92
4.3.1 词法分析器93
4.3.2 语法分析器100
4.3.3 语义分析器105
4.3.4 代码生成器115
4.4 设计模式解析之访问者模式118
4.4.1 访问者模式的结构119
4.4.2 Javac中访问者模式的实现120
4.5 总结121
第5章 深入class文件结构122
5.1 JVM指令集简介122
5.1.1 与类相关的指令124
5.1.2 方法的定义125
5.1.3 属性的定义126
5.1.4 其他指令集127
5.2 class文件头的表示形式135
5.3 常量池139
5.3.1 UTF8常量类型142
5.3.2 Fieldref、Methodref常量类型143
5.3.3 Class常量类型143
5.3.4 NameAndType常量类型144
5.4 类信息144
5.5 Fields和Methods定义145
5.6 类属性描述149
5.7 Javap生成的class文件结构150
5.7.1 LineNumberTable152
5.7.2 LocalVariableTable153
5.8 总结155
第6章 深入分析ClassLoader工作机制156
6.1 ClassLoader类结构分析157
6.2 ClassLoader的等级加载机制158
6.3 如何加载class文件161
6.3.1 加载字节码到内存161
6.3.2 验证与解析163
6.3.3 初始化Class对象163
6.4 常见加载类错误分析163
6.4.1 ClassNotFoundException163
6.4.2 NoClassDefFoundError164
6.4.3 UnsatisfiedLinkError165
6.4.4 ClassCastException166
6.4.5 ExceptionInInitializerError167
6.5 常用的ClassLoader分析168
6.6 如何实现自己的ClassLoader172
6.6.1 加载自定义路径下的class文件172
6.6.2 加载自定义格式的class文件174
6.7 实现类的热部署176
6.8 Java应不应该动态加载类178
6.9 总结179
第7章 JVM体系结构与工作方式180
7.1 JVM体系结构180
7.1.1 何谓JVM180
7.1.2 JVM体系结构详解183
7.2 JVM工作机制185
7.2.1 机器如何执行代码185
7.2.2 JVM为何选择基于栈的架构186
7.2.3 执行引擎的架构设计187
7.2.4 执行引擎的执行过程188
7.2.5 JVM方法调用栈193
7.3 总结197
第8章 JVM内存管理198
8.1 物理内存与虚拟内存199
8.2 内核空间与用户空间200
8.3 在Java中哪些组件需要使用内存201
8.3.1 Java堆201
8.3.2 线程201
8.3.3 类和类加载器202
8.3.4 NIO202
8.3.5 JNI203
8.4 JVM内存结构203
8.4.1 PC寄存器204
8.4.2 Java栈204
8.4.3 堆205
8.4.4 方法区205
8.4.5 运行时常量池206
8.4.6 本地方法栈206
8.5 JVM内存分配策略206
8.5.1 通常的内存分配策略207
8.5.2 Java中的内存分配详解207
8.6 JVM内存回收策略212
8.6.1 静态内存分配和回收212
8.6.2 动态内存分配和回收213
8.6.3 如何检测垃圾213
8.6.4 基于分代的垃圾收集算法215
8.7 内存问题分析224
8.7.1 GC日志分析224
8.7.2 堆快照文件分析227
8.7.3 JVM Crash日志分析227
8.8 实例1233
8.9 实例2235
8.10 实例3237
8.11 总结242
第9章 Servlet工作原理解析243
9.1 从Servlet容器说起243
9.1.1 Servlet容器的启动过程244
9.1.2 Web应用的初始化工作247
9.2 创建Servlet实例249
9.2.1 创建Servlet对象250
9.2.2 初始化Servlet250
9.3 Servlet体系结构252
9.4 Servlet如何工作255
9.5 Servlet中的Listener257
9.6 Filter如何工作259
9.7 Servlet中的url-pattern261
9.8 总结262
第10章 深入理解Session与Cookie263
10.1 理解Cookie264
10.1.1 Cookie属性项264
10.1.2 Cookie如何工作265
10.1.3 使用Cookie的限制268
10.2 理解Session269
10.2.1 Session与Cookie269
10.2.2 Session如何工作270
10.3 Cookie安全问题273
10.4 分布式Session框架274
10.4.1 存在哪些问题274
10.4.2 可以解决哪些问题275
10.4.3 总体实现思路275
10.5 Cookie压缩280
10.6 表单重复提交问题282
10.7 多终端Session统一283
10.8 总结285
第11章 Tomcat的系统架构与设计模式286
11.1 Tomcat总体设计286
11.1.1 Tomcat总体结构287
11.1.2 Connector组件293
11.1.3 Servlet容器Container298
11.1.4 Tomcat中的其他组件309
11.2 Tomcat中的设计模式309
11.2.1 门面设计模式309
11.2.2 观察者设计模式311
11.2.3 命令设计模式313
11.2.4 责任链设计模式314
11.3 总结316
第12章 Jetty的工作原理解析317
12.1 Jetty的基本架构317
12.1.1 Jetty的基本架构简介317
12.1.2 Handler的体系结构319
12.2 Jetty的启动过程320
12.3 接受请求321
12.3.1 基于HTTP协议工作321
12.3.2 基于AJP工作323
12.3.3 基于NIO方式工作326
12.4 处理请求327
12.5 与JBoss集成330
12.6 与Tomcat的比较331
12.6.1 架构比较331
12.6.2 性能比较332
12.6.3 特性比较332
12.7 总结333
第13章 Spring框架的设计理念与设计模式分析334
13.1 Spring的骨骼架构334
13.1.1 Spring的设计理念335
13.1.2 核心组件如何协同工作336
13.2 核心组件详解337
13.2.1 Bean组件337
13.2.2 Context组件339
13.2.3 Core组件340
13.2.4 Ioc容器如何工作342
13.3 Spring中AOP的特性详解352
13.3.1 动态代理的实现原理352
13.3.2 Spring AOP如何实现355
13.4 设计模式解析之代理模式358
13.4.1 代理模式原理358
13.4.2 Spring中代理模式的实现358
13.5 设计模式解析之策略模式361
13.5.1 策略模式原理361
13.5.2 Spring中策略模式的实现362
13.6 总结362
第14章 Spring MVC工作机制与设计模式364
14.1 Spring MVC的总体设计364
14.2 Control设计369
14.2.1 HandlerMapping初始化370
14.2.2 HandlerAdapter初始化372
14.2.3 Control的调用逻辑373
14.3 Model设计374
14.4 View设计375
14.5 框架设计的思考377
14.5.1 为什么需要框架377
14.5.2 需要什么样的框架377
14.5.3 框架设计的原则378
14.5.4 “指航灯”378
14.5.5 最基本的原则378
14.6 设计模式解析之模板模式379
14.6.1 模板模式的结构379
14.6.2 Spring MVC中的模板模式示例379
14.7 总结380
第15章 深入分析Ibatis框架之系统架构与映射原理381
15.1 Ibatis框架主要的类层次结构381
15.2 Ibatis框架的设计策略382
15.3 Ibatis框架的运行原理384
15.4 示例386
15.5 Ibatis对SQL语句的解析388
15.6 数据库字段映射到Java对象389
15.7 示例运行的结果391
15.8 设计模式解析之简单工厂模式391
15.8.1 简单工厂模式的实现原理391
15.8.2 在Ibatis中的简单工厂模式示例392
15.9 设计模式解析之工厂模式393
15.9.1 工厂模式的实现原理393
15.9.2 Ibatis中的工厂模式示例394
15.10 总结395
第16章 Velocity工作原理解析397
16.1 Velocity总体架构398
16.2 JJTree渲染过程解析401
16.2.1 #set语法405
16.2.2 Velocity的方法调用406
16.2.3 #if、#elseif和#else语法409
16.2.4 #foreach语法410
16.2.5 #parse语法412
16.3 事件处理机制413
16.4 常用优化技巧416
16.4.1 减少树的总节点数量416
16.4.2 减少渲染耗时的节点数量416
16.5 与JSP比较417
16.5.1 JSP渲染机制417
16.5.2 Velocity与JSP423
16.6 设计模式解析之合成模式423
16.6.1 合成模式的结构423
16.6.2 Velocity中合成模式的实现424
16.7 设计模式解析之解释器模式425
16.7.1 解释器模式的结构425
16.7.2 Velocity中解释器模式的实现426
16.8 总结426
第17章 Velocity优化实践427
17.1 现实存在的问题427
17.2 优化的理论基础428
17.2.1 程序语言的三角形结构428
17.2.2 数据结构减少抽象化429
17.2.3 简单的程序复杂化429
17.2.4 减少翻译的代价430
17.2.5 变的转化为不变430
17.3 一个高效的模板引擎的实现思路430
17.3.1 vm模板如何被编译432
17.3.2 方法调用的无反射优化439
17.3.3 将字符输出改成字节输出442
17.4 优化的成果443
17.4.1 将char转成byte443
17.4.2 无反射执行444
17.5 其他优化手段445
17.6 总结445
第18章 大浏览量系统的静态化架构设计446
18.1 淘宝大浏览量商品详情系统简介446
18.2 系统面临哪些挑战447
18.3 淘宝前台系统的优化历程449
18.4 大浏览量系统的静态改造449
18.4.1 什么是静态化系统449
18.4.2 为什么要进行静态化架构设计450
18.4.3 如何改造动态系统451
18.4.4 几种静态化方案的设计及选择453
18.4.5 如何解决失效问题458
18.4.6 服务端静态化方案的演进:CDN化459
18.5 总结462
点击展开
点击收起
— 没有更多了 —
以下为对购买帮助不大的评价