0%

基本信息

名称: 别逗了,费曼先生
作者信息: 作者: R•P•费曼 [ 中文 pdf ]

简单介绍

《别逗了,费曼先生》是一本很棒的读物:挥霍无忌、惊世骇俗,却仍然温馨,很有人情味儿。R·P·费曼,他因盘子电动力学方面的研究荣获诺贝尔物理学奖。除了作为一个物理学家外,费曼在不同时期还曾是故事大王、艺术家、鼓手和密码破泽专家。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
导言
第1部分从法洛克维到麻省理工学院
他动动脑袋瓜子就能修好收音机!
菜豆
谁偷了门?
拉丁语还是意大利语?
总想逃避
米特普拉斯特公司的首席化学家
第2部分在普林斯顿大学的岁月
“别逗了,费曼先生!”
我——!
猫地图?
魔鬼头脑
搅和油漆
别具一格的工具箱
测心术
业余科学家
第3部分费曼,炸弹和军队
嘶嘶的信管
考验猎犬
从低处看洛斯阿拉莫斯
撬锁贼碰到了撬锁贼
山姆大叔不要你了!
第4部分从康奈尔大学到加州工学院,接触巴西
讲派头的教授
有问题吗?
我要我的一块钱!
你就这样问她们?
幸运数字
又是这个美国人!
什么话都会说
照您吩咐的,老大!
盛情难承
第5部分一个物理学家的世界
你解狄拉克方程吗?
百分之七的答案
十三次
“鸡母牛,鸡母牛!”
但那是艺术吗?
电是火吗?
书好书坏,看看封面
诺贝尔的另一个错误
把文化带给物理学家
巴黎见分晓
另类状态
野狐禅科学
索引
译后记

亚马逊链接

基本信息

名称: 图灵的秘密 他的生平、思想及论文解读
作者信息: 作者: Charles Petzold [ 中文 pdf ]

简单介绍

佩措尔德编著的《图灵的秘密》涉及数学中几个大的研究领域,包括可计算性和数理逻辑。《图灵的秘密:他的生平、思想及论文解读》仅把与理解图灵论文最相关的那些主题和概念挑出来加以解释,省去了很多细节,因此《图灵的秘密:他的生平、思想及论文解读》从深度和严格性上都无法取代那些可计算性和逻辑方面的专业书籍。想深入研究这些领域的读者可以查阅参考文献。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
第一部分 基础
第1章这个墓穴埋葬着丢番图
第2章无理数和超越数
第3章几个世纪以来的发展
第二部分可计算数
第4章图灵的学业
第5章运作的机器
第6章加与乘
第7章子程序
第8章万物皆数字
第9章通用机
第10章计算机与可计算性
第11章机器与人
第三部分判定性问题
第12章逻辑与可计算性
第13章可计算函数
第14章主要证明
第15章λ演算
第16章对连续统的设想
第四部分题外话
第17章万物皆是图灵机?
第18章长眠的丢番图
参考文献

亚马逊链接

基本信息

名称: 淘宝技术这十年
作者信息: 作者: 子柳 [ 中文 pdf ]

简单介绍

《淘宝技术这十年》编辑推荐:淘宝技术大学校长解密淘宝十年,有熠熠生辉的技术变迁,有饱含智慧的产品演进,有叱咤风云的牛人生涯,有令人捧腹的圈内趣事。无论你是程序员、架构师、产品经理还是运维人员,甚至只要你身处IT圈,《淘宝技术这十年》都有无穷无尽的看点,让你大呼过瘾之余,深受启发,进而陷入沉思,不由开始细数自己所在公司的技术发展历程……

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
第0章引言:光棍节的狂欢1
第1章个人网站13
LAMP架构的网站14
武侠和倒立文化的起源20
第2章个人网站的升级23
数据库从mySQL到Oracle25
支付手段的创新——支付宝28
交流方式的创新——淘宝旺旺29
第3章企业级Java网站33
脱胎换骨的升级——更换开发语言34
坚若磐石——围绕性能、容量和成本的进化41
第4章创造技术33
淘宝文件系统——TFS53
淘宝KV缓存系统——Tair64
第5章分布式电子商务操作系统77
服务化78
中间件88
高性能服务框架HSF91
消息中间件Notify95
分布式数据访问层TDDL99
Session框架107
开放平台111
第6章我在淘宝这八年129
第7章牛P列传167
正明——集团核心系统高级研究员168
正祥——淘宝高级研究员,Ocean Base项目负责人180
毕玄——集团核心系统资深技术专家191
放翁——淘宝开放平台项目负责人198
吴翰清——阿里云集团信息安全中心高级安全专家210
云铮——数据平台与产品部资深技术专家218
小马——淘宝UED前端通用平台高级技术专家225
淘宝传奇工程师多隆的程序世界236

亚马逊链接

基本信息

名称: Spring实战(第3版)
作者信息: 作者: 沃尔斯 (Craig Walls) [ 英文 pdf ]

简单介绍

《Spring实战(第3版)》编辑推荐:In Action系列中最畅销的Spring图书,有近10万读者选择《Spring实战(第3版)》来学习Spring,也是国内读者最熟悉的Spring经典图书之一!Spring框架已经成为Java开发人员的必备知识,而且Spring 3引入了强大的新特性,例如SpEL、Spring表达式语言、IoC容器的新注解以及用户急需的对REST的支持。无论你是刚刚接触Spring还是被Spring 3.0的新特性所吸引,《Spring实战(第3版)》都是掌握Spring的最佳选择。《Spring实战(第3版)》继承了前两个畅销版本面向实战、实用的写作风格,介绍了Spring 3.0最重要的几个方面,包括REST、远程服务、消息、安全、MVC、Web Flow等。作者Craig Walls将读者真正需要的技术通过丰富且非常有趣的示例予以呈现,精彩纷呈,一定让你大呼过瘾。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
第一部分Spring的核心
第1章Spring之旅2
1.1简化Java开发3
1.1.1激发POJO的潜能4
1.1.2依赖注入5
1.1.3应用切面9
1.1.4使用模板消除样板式代码13
1.2容纳你的Bean15
1.2.1与应用上下文共事16
1.2.2Bean的生命周期17
1.3俯瞰Spring风景线19
1.3.1Spring模块19
1.3.2SpringPortfolio22
1.4Spring新功能25
1.4.1Spring2.5新特性26
1.4.2Spring3.0新特性26
1.4.3SpringPortfollo新特性27
1.5小结28
第2章装配Bean29
2.1声明Bean30
2.1.1创建Spring配置30
2.1.2声明一个简单Bean31
2.1.3通过构造器注入33
2.1.4Bean的作用域37
2.1.5初始化和销毁Bean38
2.2注入Bean属性40
2.2.1注入简单值41
2.2.2引用其他Bean42
2.2.3使用Spring的命名空间p装配属性45
2.2.4装配集合46
2.2.5装配空值50
2.3使用表达式装配51
2.3.1SpEL的基本原理51
2.3.2在SpEL值上执行操作54
2.3.3在SpEL中筛选集合58
2.4小结62
第3章最小化Spring XML配置63
3.1自动装配Bean属性64
3.1.14种类型的自动装配64
3.1.2默认自动装配68
3.1.3混合使用自动装配和显式装配68
3.2使用注解装配69
3.2.1使用@Autowired70
3.2.2借助@Inject实现基于标准的自动装配74
3.2.3在注解注入中使用表达式76
3.3自动检测Bean77
3.3.1为自动检测标注Bean78
3.3.2过滤组件扫描79
3.4使用Spring基于Java的配置80
3.4.1创建基于Java的配置80
3.4.2定义一个配置类81
3.4.3声明一个简单的Bean81
3.4.4使用Spring的基于Java的配置进行注入82
3.5小结83
第4章面向切面的Spring84
4.1什么是面向切面编程85
4.1.1定义AOP术语86
4.1.2Spring对AOP的支持88
4.2使用切点选择连接点90
4.2.1编写切点91
4.2.2使用Spring的bean()指示器92
4.3在XML中声明切面93
4.3.1声明前置和后置通知94
4.3.2声明环绕通知96
4.3.3为通知传递参数98
4.3.4通过切面引入新功能100
4.4注解切面102
4.4.1注解环绕通知104
4.4.2传递参数给所标注的通知105
4.4.3标注引入105
4.5注入AspectJ切面107
4.6小结109
第二部分Spring应用程序的核心组件
第5章征服数据库112
5.1Spring的数据访问哲学113
5.1.1了解Spring的数据访问异常体系114
5.1.2数据访问模板化116
5.1.3使用DAO支持类118
5.2配置数据源119
5.2.1使用JNDI数据源119
5.2.2使用数据源连接池120
5.2.3基于JDBC驱动的数据源121
5.3在Spring中使用JDBC122
5.3.1应对失控的JDBC代码122
5.3.2使用JDBC模板125
5.4在Spring中集成Hibernate130
5.4.1Hibernate概览131
5.4.2声明Hibernate的Session工厂132
5.4.3构建不依赖于Spring的Hibernate代码134
5.5Spring与Java持久化API136
5.5.1配置实体管理器工厂136
5.5.2编写基于JPA的DAO140
5.6小结142
第6章事务管理144
6.1理解事务145
6.1.1用4个词来表示事务146
6.1.2理解Spring对事务管理的支持147
6.2选择事务管理器147
6.2.1JDBC事务149
6.2.2Hibernate事务149
6.2.3Java持久化API事务150
6.2.4JTA(Java Transaction API)事务151
6.3在Spring中的编码事务151
6.4声明式事务153
6.4.1定义事务属性154
6.4.2在XML中定义事务157
6.4.3定义注解驱动的事务159
6.5小结160
第7章使用Spring MVC构建Web应用程序162
7.1Spring MVC起步163
7.1.1跟踪Spring MVC的请求163
7.1.2搭建Spring MVC165
7.2编写基本的控制器166
7.2.1配置注解驱动的SpringMVC167
7.2.2定义首页的控制器168
7.2.3解析视图171
7.2.4定义首页的视图175
7.2.5完成Spring应用上下文177
7.3处理控制器的输入178
7.3.1编写处理输入的控制器179
7.3.2渲染视图181
7.4处理表单183
7.4.1展现注册表单183
7.4.2处理表单输入185
7.4.3校验输入187
7.5处理文件上传191
7.5.1在表单上添加文件上传域191
7.5.2接收上传的文件192
7.5.3配置Spring支持文件上传195
7.6小结196
第8章使用Spring Web Flow197
8.1安装Spring Web Flow198
8.1.1在Spring中使用Web Flow198
8.2流程的组件201
8.2.1状态201
8.2.2转移204
8.2.3流程数据205
8.3组合起来:披萨流程207
8.3.1定义基本流程207
8.3.2收集顾客信息211
8.3.3构建订单216
8.3.4支付219
8.4保护Web流程211
8.5小结221
第9章保护Spring应用223
9.1Spring Security介绍224
9.1.1Spring Security起步224
9.1.2使用Spring Security配置命名空间225
9.2保护Web请求226
9.2.1代理Servlet过滤器226
9.2.2配置最小化的Web安全性227
9.2.3拦截请求231
9.3保护视图级别的元素234
9.3.1访问认证信息的细节234
9.3.2根据权限渲染235
9.4认证用户237
9.4.1配置内存用户存储库238
9.4.2基于数据库进行认证239
9.4.3基于LDAP进行认证240
9.4.4启用remember—me功能244
9.5保护方法调用245
9.5.1使用@Secured注解保护方法调用245
9.5.2使用JSR—250的@Roles Allowed注解246
9.5.3使用SpEL实现调用前后的安全性246
9.5.4声明方法级别的安全性切点250
9.6小结251
第三部分Spring集成
第10章使用远程服务254
10.1Spring远程调用概览255
10.2使用RMI257
10.2.1发布一个RMI服务257
10.2.2装配RMI服务260
10.3使用Hessian和Burlap发布远程服务262
10.3.1使用Hessian和Burlap发布Bean的功能263
10.3.2访问Hessian/Burlap服务266
10.4使用Spring的HttpInvoker267
10.4.1将把Bean发布为HTTP服务267
10.4.2通过HTTP访问服务269
10.5发布和使用Web服务270
10.5.1创建JAX—WS端点271
10.5.2在客户端代理JAX—WS服务275
10.6小结276
第11章为Spring添加REST功能277
11.1了解REST278
11.1.1REST的基本原理278
11.1.2Spring是如何支持REST的279
11.2编写面向资源的控制器279
11.2.1剖析RESTless的控制器280
11.2.2处理RESTfulURL281
11.2.3执行REST动作284
11.3表述资源287
11.3.1协商资源表述287
11.3.2使用HTTP信息转换器290
11.4编写REST客户端293
11.4.1了解RestTemplate的操作295
11.4.2GET资源296
11.4.3PUT资源298
11.4.4DELETE资源300
11.4.5POST资源数据301
11.4.6交换资源303
11.5提交RESTful表单305
11.5.1在JSP中渲染隐藏的方法域306
11.5.2发布真正的请求307
11.6小结308
第12章Spring消息310
12.1JMS简介311
12.1.1构建JMS312
12.1.2评估JMS的优点314
12.2在Spring中搭建消息代理316
12.2.1创建连接工厂316
12.2.2声明ActiveMQ消息目的地317
12.3使用Spring的JMS模板318
12.3.1处理失控的JMS代码318
12.3.2使用JMS模板319
12.4创建消息驱动的POJO324
12.4.1创建消息监听器325
12.4.2配置消息监听器326
12.5使用基于消息的RPC327
12.5.1使用Spring基于消息的RPC328
12.5.2使用Lingo实现异步RPC330
12.6小结332
第13章使用JMX管理SpringBean333
13.1将SpringBean导出为MBean334
13.1.1通过名称发布方法337
13.1.2使用接口定义MBean的操作和属性339
13.1.3使用注解驱动的MBean340
13.1.4处理MBean冲突342
13.2远程MBean343
13.2.1发布远程MBean343
13.2.2访问远程MBean344
13.2.3代理MBean346
13.3处理通知347
13.3.1监听通知348
13.4小结349
第14章其他Spring技巧350
14.1外部化配置351
14.1.1替换属性占位符351
14.1.2重写属性354
14.1.3加密外部属性355
14.2装配JNDI对象357
14.2.1JNDI的传统用法357
14.2.2装配JNDI对象359
14.2.3将EJB装配到Spring中362
14.3发送邮件363
14.3.1配置邮件发送器363
14.3.2构建邮件365
14.4调度和后台任务370
14.4.1声明调度方法371
14.4.2声明异步方法372
14.5小结373
14.6结束语374

亚马逊链接

基本信息

名称: 图灵程序设计丛书 代码的未来
作者信息: 作者: 松本行弘 (Yukihiro Matsumoto) [ 中文 pdf ]

简单介绍

《代码的未来》编辑推荐:20年后、100年后的编程语言会是什么样?《代码的未来》中Ruby之父松本行弘剖析云计算、大数据时代下的技术:Lisp会是未来的发展趋势吗? Go和Dart能取代C和JavaScript吗?关系型数据库已经走到穷途末路了吗?Go、VoltDB、node.js、CoffeeScript、Dart、MongoDB…… 云计算、大数据时代下谁主沉浮?作者在《代码的未来》中一一剖析。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
第一章 编程的时间和空间
1.1 编程的本质 3
编程的本质是思考 4
创造世界的乐趣 4
快速提高的性能改变了社会 5
以不变应万变 8
摩尔定律的局限 9
社会变化与编程 10
1.2 未来预测 13
科学的未来预测 14
IT未来预测 14
极限未来预测 16
从价格看未来 16
从性能看未来 17
从容量看未来 18
从带宽看未来 19
小结 20
第二章 编程语言的过去、现在和未来
2.1 编程语言的世界 23
被历史埋没的先驱 25
编程语言的历史 26
编程语言的进化方向 30
未来的编程语言 32
20年后的编程语言 34
学生们的想象 34
2.2 DSL(特定领域语言) 36
外部DSL 37
内部DSL 38
DSL的优势 39
DSL的定义 39
适合内部DSL的语言 40
外部DSL实例 42
DSL设计的构成要素 43
Sinatra 46
小结 47
2.3 元编程 48
Meta,Reflection 48
类对象 51
类的操作 52
Lisp 53
数据和程序 54
Lisp程序 56
宏 56
宏的功与过 57
元编程的可能性与危险性 59
小结 60
2.4 内存管理 61
看似无限的内存 61
GC的三种基本方式 62
术语定义 62
标记清除方式 63
复制收集方式 64
引用计数方式 65
引用计数方式的缺点 65
进一步改良的应用方式 66
分代回收 66
对来自老生代的引用进行记录 67
增量回收 68
并行回收 69
GC大统一理论 69
2.5 异常处理 71
“一定没问题的” 71
用特殊返回值表示错误 72
容易忽略错误处理 72
Ruby中的异常处理 73
产生异常 74
更高级的异常处理 75
Ruby中的后处理保证 76
其他语言中的异常处理 77
Java的检查型异常 77
Icon的异常和真假值 78
Eiffel的DesignbyContract 80
异常与错误值 80
小结 81
2.6 闭包 82
函数对象 82
高阶函数 83
用函数参数提高通用性 84
函数指针的局限 85
作用域:变量可见范围 87
生存周期:变量的存在范围 88
闭包与面向对象 89
Ruby的函数对象 89
Ruby与JavaScript的区别 90
Lisp—1与Lisp—2 91
第三章 编程语言的新潮流
3.1 语言的设计 97
客户端与服务器端 97
向服务器端华丽转身 98
在服务器端获得成功的四大理由 99
客户端的JavaScript 100
性能显著提升 101
服务器端的Ruby 102
RubyonRails带来的飞跃 102
服务器端的Go 103
静态与动态 104
动态运行模式 105
何谓类型 105
静态类型的优点 106
动态类型的优点 106
有鸭子样的就是鸭子 107
StructuralSubtyping 108
小结 108
3.2 Go 109
New(新的) 109
Experimental(实验性的) 109
Concurrent(并发的) 110
Garbage—collected(带垃圾回收的) 110
Systems(系统) 111
Go的创造者们 111
HelloWorld 112
Go的控制结构 113
类型声明 116
无继承式面向对象 118
多值与多重赋值 120
并发编程 122
小结 124
3.3 Dart 126
为什么要推出Dart? 126
Dart的设计目标 129
代码示例 130
Dart的特征 132
基于类的对象系统 132
非强制性静态类型 133
Dart的未来 134
3.4 CoffeeScript 135
最普及的语言 135
被误解最多的语言 135
显著高速化的语言 136
对JavaScript的不满 138
CoffeeScript 138
安装方法 139
声明和作用域 139
分号和代码块 141
省略记法 142
字符串 143
数组和循环 143
类 145
小结 146
3.5 Lua 148
示例程序 149
数据类型 149
函数 150
表 150
元表 151
方法调用的实现 153
基于原型编程 155
和Ruby的比较(语言篇) 157
嵌入式语言Lua 157
和Ruby的比较(实现篇) 158
嵌入式Ruby 159
第四章 云计算时代的编程
4.1 可扩展性 163
信息的尺度感 163
大量数据的查找 164
二分法查找 165
散列表 167
布隆过滤器 169
一台计算机的极限 170
DHT(分布式散列表) 171
Roma 172
MapReduce 173
小结 174
4.2 C10K问题 175
何为C10K问题 175
C10K问题所引发的“想当然” 177
使用epoll功能 180
使用libev框架 181
使用EventMachine 183
小结 185
4.3 HashFold 186
HashFold库的实现(Level1) 187
运用多核的必要性 190
目前的Ruby实现所存在的问题 191
通过进程来实现HashFold(Level2) 191
抖动 193
运用进程池的HashFold(Level3) 194
小结 197
4.4 进程间通信 198
进程与线程 198
同一台计算机上的进程间通信 199
TCP/IP协议 201
用C语言进行套接字编程 202
用Ruby进行套接字编程 204
Ruby的套接字功能 205
用Ruby实现网络服务器 208
小结 209
4.5 Rack与Unicorn 210
Rack中间件 211
应用程序服务器的问题 212
Unicorn的架构 215
Unicorn的解决方案 215
性能 219
策略 220
小结 221
第五章 支撑大数据的数据存储技术
5.1 键—值存储 225
Hash类 225
DBM类 226
数据库的ACID特性 226
CAP原理 227
CAP解决方案——BASE 228
不能舍弃可用性 229
大规模环境下的键—值存储 230
访问键—值存储 230
键—值存储的节点处理 231
存储器 232
写入和读取 233
节点追加 233
故障应对 233
终止处理 235
其他机制 235
性能与应用实例 236
小结 236
5.2 NoSQL 237
RDB的极限 237
NoSQL数据库的解决方案 238
形形色色的NoSQL数据库 239
面向文档数据库 240
MongoDB的安装 241
启动数据库服务器 243
MongoDB的数据库结构 244
数据的插入和查询 244
用JavaScript进行查询 245
高级查询 246
数据的更新和删除 249
乐观并发控制 250
5.3 用Ruby来操作MongoDB 251
使用Ruby驱动 251
对数据库进行操作 253
数据的插入 253
数据的查询 253
高级查询 254
find方法的选项 256
原子操作 257
ActiveRecord 259
ODMapper 260
5.4 SQL数据库的反击 264
“云”的定义 264
SQL数据库的极限 264
存储引擎Spider 265
SQL数据库之父的反驳 265
SQL数据库VoltDB 268
VoltDB的架构 269
VoltDB中的编程 270
HelloVoltDB! 271
性能测试 273
小结 275
5.5 memcached和它的伙伴们 276
用于高速访问的缓存 276
memcached 277
示例程序 278
对memcached的不满 279
memcached替代服务器 280
另一种键—值存储Redis 282
Redis的数据类型 284
Redis的命令与示例 285
小结 289
第六章 多核时代的编程
6.1 摩尔定律 293
呈几何级数增长 293
摩尔定律的内涵 294
摩尔定律的结果 295
摩尔定律所带来的可能性 296
为了提高性能 297
摩尔定律的极限 302
超越极限 303
不再有免费的午餐 304
6.2 UNIX管道 305
管道编程 306
多核时代的管道 308
xargs——另一种运用核心的方式 309
注意瓶颈 311
阿姆达尔定律 311
多核编译 312
ccache 313
distcc 313
编译性能测试 314
小结 315
6.3 非阻塞I/O 316
何为非阻塞I/O 316
使用read(2)的方法 317
边沿触发与电平触发 319
使用read(2)+select的方法 319
使用read+O_NONBLOCK标志 321
Ruby的非阻塞I/O 322
使用aio_read的方法 323
6.4 node.js 330
减负 330
拖延 331
委派 332
非阻塞编程 333
node.js框架 333
事件驱动编程 334
事件循环的利弊 335
node.js编程 335
node.js网络编程 337
node.js回调风格 339
node.js的优越性 340
EventMachine与Rev 341
6.5 ZeroMQ 342
多CPU的必要性 342
阿姆达尔定律 343
多CPU的运用方法 343
进程间通信 345
管道 345
SysVIPC 346
套接字 347
UNIX套接字 349
ZeroMQ 349
ZeroMQ的连接模型 350
ZeroMQ的安装 352
ZeroMQ示例程序 352
小结 354
版权声明 356

亚马逊链接

基本信息

名称: JavaScript设计模式
作者信息: 作者: 奥斯马尼 (Addy Osmani) [ 中文 pdf ]

简单介绍

通过阅读奥斯马尼的《JavaScript设计模式》,你将学会如何把经典和现代设计模式应用到JavaScript语言中,来编写优美、结构化和可维护的代码。如果想让代码保持高效、更易于管理,并且能同步最新的最佳实践,那么本书正是为你打造的。 本书介绍了很多流行的设计模式,包括Module(模块)模式、Observer(观察者)模式、:Facade(外观)模式和Mediator(中介者)模式;帮助你从现代Web应用程序开发者的角度来了解MVC、MVP、MVVM等现代架构模式的实用性。本书将带领你了解现代模块格式、有效为代码定义名称空间的方法和其他重要主题。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
第1章 介绍 1
第2章 什么是模式 3
我们每天都在使用模式 4
第3章 模式状态测试、Proto模式及三法则 6
第4章 设计模式的结构 8
第5章 编写设计模式 11
第6章 反模式 13
第7章 设计模式类别 15
第8章 设计模式分类 17
有关类(Class)的要点 17
第9章JavaScript设计模式 20
9.1Constructor(构造器)模式 21
9.1.1对象创建 21
9.1.2基本Constructor(构造器) 23
9.1.3带原型的Constructor(构造器) 24
9.2Module(模块)模式 25
9.2.1对象字面量 25
9.2.2Module(模块)模式 27
9.2.3Module模式变化 31
9.3RevealingModule(揭示模块)模式 36
9.3.1优点 38
9.3.2缺点 38
9.4Singleton(单例)模式 38
9.5Observer(观察者)模式 42
9.5.1Observer(观察者)模式和Publish/Subscribe(发布/订阅)模式的区别 47
9.5.2优点 49
9.5.3缺点 49
9.5.4Publish/Subscribe实现 49
9.6Mediator(中介者)模式 59
9.6.1基本实现 60
9.6.2高级实现 61
9.6.3示例 67
9.6.4优点和缺点 68
9.6.5中介者(Mediator)与观察者(Observer) 69
9.6.6中介者(Mediator)与外观(Facade) 69
9.7Prototype(原型)模式 70
9.8Command(命令)模式 73
9.9Facade(外观)模式 75
有关抽象的要点 78
9.10Factory(工厂)模式 78
9.10.1何时使用Factory模式 81
9.10.2何时不应使用Factory模式 81
9.10.3AbstractFactory(抽象工厂) 81
9.11Mixin模式 82
9.11.1子类化 83
9.11.2Mixin(混入) 84
9.12Decorator(装饰者)模式 88
9.12.1伪经典Decorator(装饰者) 91
9.12.2使用jQuery的装饰者 96
9.12.3优点和缺点 97
9.13Flyweight(享元)模式 98
9.13.1使用Flyweight模式 98
9.13.2Flyweight和共享数据 99
9.13.3实现经典Flyweight(享元) 99
9.13.4转换代码以使用Flyweight(享元)模式 103
9.13.5基本工厂 105
9.13.6管理外部状态 106
9.13.7Flyweight(享元)模式和DOM 107
第10章 JavaScriptMV*模式 112
10.1MVC 112
Smalltalk—80MVC 113
10.2为JavaScript开发人员提供的MVC 114
10.2.1Model(模型) 114
10.2.2View(视图) 116
10.2.3Controller(控制器) 119
10.2.4Spine.js与Backbone.js 120
10.3MVC为我们提供了什么 122
10.4JavaScript中的Smalltalk—80MVC 122
10.4.1深入挖掘 123
10.4.2总结 123
10.5MVP 124
10.5.1Model、View和Presenter 124
10.5.2MVP或MVC? 125
10.5.3MVC、MVP和Backbone.js 126
10.6MVVM 128
10.6.1历史 129
10.6.2Model 129
10.6.3View 130
10.6.4ViewModel 133
10.6.5小结:View和ViewModel 135
10.6.6小结:ViewModel和Model 135
10.7利与弊 135
10.7.1优点 135
10.7.2缺点 136
10.8使用更松散数据绑定的MVVM 136
10.9MVC、MVP与MVVM 141
10.10Backbone.js与KnockoutJS 142
第11章模块化的JavaScript设计模式 144
11.1脚本加载器要点 145
11.2AMD 145
11.2.1模块入门 146
11.2.2使用Dojo的AMD模块 150
11.2.3AMD模块设计模式(Dojo) 151
11.2.4使用jQuery的AMD模块 152
11.2.5AMD总结 155
11.3CommonJS 155
11.3.1入门指南 156
11.3.2使用多个依赖 157
11.3.3支持CommonJS的加载器和框架 158
11.3.4CommonJS适用于浏览器吗? 158
11.3.5延伸阅读 159
11.4AMD和CommonJS:互相竞争,标准同效 159
UMD:用于插件的AMD和CommonJS兼容模块 160
11.5ESHarmony 165
11.5.1具有Imports和Exports的模块 166
11.5.2从远程数据源加载的模块 167
11.5.3模块加载器API 167
11.5.4用于服务器的类CommonJS模块 168
11.5.5具有构造函数、getter和setter的类 168
11.5.6ESHarmony总结 169
11.5.7延伸阅读 170
11.6总结 170
第12章jQuery中的设计模式 171
12.1Composite(组合)模式 171
12.2Adapter(适配器)模式 173
12.3Facade(外观)模式 174
12.4Observer(观察者)模式 177
12.5Iterator(迭代器)模式 180
12.6延迟初始化 181
12.7Proxy(代理)模式 183
12.8Builder(生成器)模式 184
第13章jQuery插件设计模式 187
13.1模式 188
13.2LightweightStart模式 189
延伸阅读 191
13.3完整的WidgetFactory模式 191
延伸阅读 194
13.4嵌套命名空间插件模式 194
延伸阅读 196
13.5自定义事件插件模式(使用WidgetFactory) 196
延伸阅读 198
13.6使用DOM—to—ObjectBridge模式的原型继承 198
延伸阅读 200
13.7jQuery UI Widget Factory Bridge模式 200
延伸阅读 203
13.8使用WidgetFactory的jQuery Mobile Widget 203
13.9RequireJS和jQuery UI Widget Factory 206
13.9.1用法 208
13.9.2延伸阅读 209
13.10全局选项和单次调用可重写选项(最佳选项模式) 209
延伸阅读 211
13.11高可配和高可变的插件模式 211
延伸阅读 213
13.12是什么使插件超越模式 213
13.12.1质量 214
13.12.2代码风格 214
13.12.3兼容性 214
13.12.4可靠性 214
13.12.5性能 214
13.12.6文档 215
13.12.7维护的可能性 215
13.13总结 215
13.14命名空间模式 215
13.15命名空间基础 216
13.15.1单一全局变量 216
13.15.2命名空间前缀 217
13.15.3对象字面量表示法 217
13.15.4嵌套命名空间 221
13.15.5立即调用的函数表达式(IIFE) 222
13.15.6命名空间注入 224
13.16高级命名空间模式 226
13.16.1自动嵌套的命名空间 227
13.16.2依赖声明模式 229
13.16.3深度对象扩展 229
13.16.4推荐 232
第14章 总结 233
附录 参考文献 235

亚马逊链接

基本信息

名称: 深入理解Java虚拟机 JVM高级特性与最佳实践(第2版)
作者信息: 作者: 周志明 [ 中文 pdf ]

简单介绍

《深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)》编辑推荐:超级畅销书全新升级,第1版两年内印刷近10次,Java图书领域公认的经典著作,繁体版台湾发行。基于最新JDK1.7,围绕内存管理、执行子系统、程序编译与优化、高效并发等核心主题对JVM进行全面而深入的分析,深刻揭示JVM的工作原理。以实践为导向,通过大量与实际生产环境相结合的案例展示了解决各种常见JVM问题的技巧和最佳实践。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
前言
第一部分走近Java
第1章走近Java2
1.1概述2
1.2Java技术体系3
1.3Java发展史5
1.4Java虚拟机发展史9
1.4.1SunClassicExactVM9
1.4.2SunHotSpotVM11
1.4.3SunMobile—EmbeddedVMMeta—CircularVM12
1.4.4BEAJRockitIBMJ9VM13
1.4.5AzulVMBEALiquidVM14
1.4.6ApacheHarmonyGoogleAndroidDalvikVM14
1.4.7MicrosoftJVM及其他15
1.5展望Java技术的未来16
1.5.1模块化17
1.5.2混合语言17
1.5.3多核并行19
1.5.4进一步丰富语法20
1.5.564位虚拟机21
1.6实战:自己编译JDK22
1.6.1获取JDK源码22
1.6.2系统需求24
1.6.3构建编译环境25
1.6.4进行编译26
1.6.5在IDE工具中进行源码调试31
1.7本章小结35
第二部分自动内存管理机制
第2章Java内存区域与内存溢出异常38
2.1概述38
2.2运行时数据区域38
2.2.1程序计数器39
2.2.2Java虚拟机栈39
2.2.3本地方法栈40
2.2.4Java堆41
2.2.5方法区41
2.2.6运行时常量池42
2.2.7直接内存43
2.3HotSpot虚拟机对象探秘43
2.3.1对象的创建44
2.3.2对象的内存布局47
2.3.3对象的访问定位48
2.4实战:OutOfMemoryError异常50
2.4.1Java堆溢出51
2.4.2虚拟机栈和本地方法栈溢出53
2.4.3方法区和运行时常量池溢出56
2.4.4本机直接内存溢出59
2.5本章小结60
第3章垃圾收集器与内存分配策略61
3.1概述61
3.2对象已死吗62
3.2.1引用计数算法62
3.2.2可达性分析算法64
3.2.3再谈引用65
3.2.4生存还是死亡66
3.2.5回收方法区68
3.3垃圾收集算法69
3.3.1标记—清除算法69
3.3.2复制算法70
3.3.3标记—整理算法71
3.3.4分代收集算法72
3.4HotSpot的算法实现72
3.4.1枚举根节点72
3.4.2安全点73
3.4.3安全区域74
3.5垃圾收集器75
3.5.1Serial收集器76
3.5.2ParNew收集器77
3.5.3ParallelScavenge收集器79
3.5.4SerialOld收集器80
3.5.5ParallelOld收集器80
3.5.6CMS收集器81
3.5.7G1收集器84
3.5.8理解GC日志89
3.5.9垃圾收集器参数总结90
3.6内存分配与回收策略91
3.6.1对象优先在Eden分配91
3.6.2大对象直接进入老年代93
3.6.3长期存活的对象将进入老年代95
3.6.4动态对象年龄判定97
3.6.5空间分配担保98
3.7本章小结100
第4章虚拟机性能监控与故障处理工具101
4.1概述101
4.2JDK的命令行工具101
4.2.1jps:虚拟机进程状况工具104
4.2.2jstat:虚拟机统计信息监视工具105
4.2.3jinfo:Java配置信息工具106
4.2.4jmap:Java内存映像工具107
4.2.5jhat:虚拟机堆转储快照分析工具108
4.2.6jstack:Java堆栈跟踪工具109
4.2.7HSDIS:JIT生成代码反汇编111
4.3JDK的可视化工具114
4.3.1JConsole:Java监视与管理控制台115
4.3.2VisualVM:多合一故障处理工具122
4.4本章小结131
第5章调优案例分析与实战132
5.1概述132
5.2案例分析132
5.2.1高性能硬件上的程序部署策略132
5.2.2集群间同步导致的内存溢出135
5.2.3堆外内存导致的溢出错误136
5.2.4外部命令导致系统缓慢137
5.2.5服务器JVM进程崩溃138
5.2.6不恰当数据结构导致内存占用过大139
5.2.7由Windows虚拟内存导致的长时间停顿141
5.3实战:Eclipse运行速度调优142
5.3.1调优前的程序运行状态142
5.3.2升级JDK1.6的性能变化及兼容问题145
5.3.3编译时间和类加载时间的优化150
5.3.4调整内存设置控制垃圾收集频率153
5.3.5选择收集器降低延迟157
5.4本章小结160
第三部分虚拟机执行子系统
第6章类文件结构162
6.1概述162
6.2无关性的基石162
6.3Class类文件的结构164
6.3.1魔数与Class文件的版本166
6.3.2常量池167
6.3.3访问标志173
6.3.4类索引、父类索引与接口索引集合174
6.3.5字段表集合175
6.3.6方法表集合178
6.3.7属性表集合180
6.4字节码指令简介196
6.4.1字节码与数据类型197
6.4.2加载和存储指令199
6.4.3运算指令200
6.4.4类型转换指令202
6.4.5对象创建与访问指令203
6.4.6操作数栈管理指令203
6.4.7控制转移指令204
6.4.8方法调用和返回指令204
6.4.9异常处理指令205
6.4.10同步指令205
6.5公有设计和私有实现206
6.6Class文件结构的发展207
6.7本章小结208
第7章虚拟机类加载机制209
7.1概述209
7.2类加载的时机210
7.3类加载的过程214
7.3.1加载214
7.3.2验证216
7.3.3准备219
7.3.4解析220
7.3.5初始化225
7.4类加载器227
7.4.1类与类加载器228
7.4.2双亲委派模型229
7.4.3破坏双亲委派模型233
7.5本章小结235
第8章虚拟机字节码执行引擎236
8.1概述236
8.2运行时栈帧结构236
8.2.1局部变量表238
8.2.2操作数栈242
8.2.3动态连接243
8.2.4方法返回地址243
8.2.5附加信息244
8.3方法调用244
8.3.1解析244
8.3.2分派246
8.3.3动态类型语言支持258
8.4基于栈的字节码解释执行引擎269
8.4.1解释执行269
8.4.2基于栈的指令集与基于寄存器的指令集270
8.4.3基于栈的解释器执行过程272
8.5本章小结275
第9章类加载及执行子系统的案例与实战276
9.1概述276
9.2案例分析276
9.2.1Tomcat:正统的类加载器架构276
9.2.2OSGi:灵活的类加载器架构279
9.2.3字节码生成技术与动态代理的实现282
9.2.4Retrotranslator:跨越JDK版本286
9.3实战:自己动手实现远程执行功能289
9.3.1目标290
9.3.2思路290
9.3.3实现291
9.3.4验证298
9.4本章小结299
第四部分程序编译与代码优化
第10章早期(编译期)优化302
10.1概述302
10.2Javac编译器303
10.2.1Javac的源码与调试303
10.2.2解析与填充符号表305
10.2.3注解处理器307
10.2.4语义分析与字节码生成307
10.3Java语法糖的味道311
10.3.1泛型与类型擦除311
10.3.2自动装箱、拆箱与遍历循环315
10.3.3条件编译317
10.4实战:插入式注解处理器318
10.4.1实战目标318
10.4.2代码实现319
10.4.3运行与测试326
10.4.4其他应用案例327
10.5本章小结328
第11章晚期(运行期)优化329
11.1概述329
11.2HotSpot虚拟机内的即时编译器329
11.2.1解释器与编译器330
11.2.2编译对象与触发条件332
11.2.3编译过程337
11.2.4查看及分析即时编译结果339
11.3编译优化技术345
11.3.1优化技术概览346
11.3.2公共子表达式消除350
11.3.3数组边界检查消除351
11.3.4方法内联352
11.3.5逃逸分析354
11.4Java与C/C++的编译器对比356
11.5本章小结358
第五部分高效并发
第12章Java内存模型与线程360
12.1概述360
12.2硬件的效率与一致性361
12.3Java内存模型362
12.3.1主内存与工作内存363
12.3.2内存间交互操作364
12.3.3对于volatile型变量的特殊规则366
12.3.4对于long和double型变量的特殊规则372
12.3.5原子性、可见性与有序性373
12.3.6先行发生原则375
12.4Java与线程378
12.4.1线程的实现378
12.4.2Java线程调度381
12.4.3状态转换383
12.5本章小结384
第13章线程安全与锁优化385
13.1概述385
13.2线程安全385
13.2.1Java语言中的线程安全386
13.2.2线程安全的实现方法390
13.3锁优化397
13.3.1自旋锁与自适应自旋398
13.3.2锁消除398
13.3.3锁粗化400
13.3.4轻量级锁400
13.3.5偏向锁402
13.4本章小结403
附录
附录A编译Windows版的OpenJDK406
附录B虚拟机字节码指令表414
附录CHotSpot虚拟机主要参数表420
附录D对象查询语言(OQL)简介424
附录EJDK历史版本轨迹430

亚马逊链接

基本信息

名称: 精通iOS开发(第5版)
作者信息: 作者: 马克 (David Mark) [ 英文 pdf ]

简单介绍

《精通iOS开发(第5版)》编辑推荐:iOS是如今最炙手可热的移动平台,苹果公司为其推出了强大的软件开发工具包iOS SDK。自2009年《精通iOS开发(第1版)》面世以来,累计销量超过5万册;全球iOS开发者交口称赞的iOS开发圣经,新版本经过重新翻译审校;资深技术专家担纲撰写,iOS开发必备。  《精通iOS开发(第5版)》具有较强的通用性,iOS开发新手可通过学习本书快速入门进阶,经验丰富的iOS开发人员也能从中找到令人耳目一新的内容。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
第1章 欢迎来到iOS世界 1
1.1 关于本书 1
1.2 必要条件 1
1.2.1 开发者选项 3
1.2.2 必备知识 3
1.3 编写iOS应用程序有何不同 4
1.3.1 只能激活一个应用 4
1.3.2 只有一个窗口 5
1.3.3 有限的访问权限 5
1.3.4 有限的响应时间 5
1.3.5 有限的屏幕大小 5
1.3.6 有限的系统资源 6
1.3.7 不支持垃圾回收 6
1.3.8 新功能 6
1.3.9 与众不同的交互方法 7
1.4 本书内容 7
1.5 这一版的新内容 8
1.6 准备开始吧 9
第2章 创建项目 10
2.1 在Xcode中创建项目 10
2.1.1 Xcode工作区窗口 14
2.1.2 深入研究项目 21
2.2 InterfaceBuilder简介 23
2.2.1 nib文件的构成 24
2.2.2 库 25
2.2.3 在视图中添加标签 26
2.2.4 属性修改 29
2.3 画龙点睛——美化iPhone应用 30
2.4 小结 34
第3章 实现基本交互 35
3.1 MVC方法 36
3.2 创建项目 36
3.3 视图控制器 37
3.3.1 输出口和动作 38
3.3.2 清理视图控制器 41
3.3.3 设计用户界面 41
3.3.4 运行应用 50
3.3.5 样式文本 50
3.4 应用程序委托 52
3.5 小结 55
第4章 更丰富的用户界面 56
4.1 满是控件的屏幕 56
4.2 活动控件、静态控件和被动控件 58
4.3 创建应用程序 59
4.4 实现图像视图和文本字段 59
4.4.1 添加图像视图 59
4.4.2 调整图像视图的大小 62
4.4.3 设置视图属性 63
4.4.4 添加文本字段 65
4.4.5 创建和关联输出口 70
4.5 关闭键盘 72
4.5.1 输入完成后关闭键盘 73
4.5.2 通过触摸背景关闭键盘 74
4.5.3 添加滑块和标签 76
4.5.4 添加顶部约束 78
4.5.5 创建并关联动作方法和输出口 78
4.5.6 实现动作方法 79
4.6 实现开关、按钮和分段控件 80
4.7 实现分段控件的动作方法 84
4.8 实现操作表单和警告视图 85
4.8.1 遵从操作表单委托方法 85
4.8.2 显示操作表单 85
4.9 美化按钮 88
4.9.1 viewDidLoad方法 89
4.9.2 控件状态 90
4.9.3 可拉伸图像 90
4.10 小结 91
第5章 自动旋转和自动调整大小 92
5.1 自动旋转机制 93
5.1.1 点、像素和Retina显示屏 93
5.1.2 自动旋转的实现方式 94
5.2 选择视图支持的方向 95
5.2.1 应用级支持的方向 95
5.2.2 单个控制器的旋转支持 96
5.3 使用约束设计界面 98
5.3.1 覆盖默认的约束 100
5.3.2 与屏幕等宽的按钮 101
5.4 旋转时重构视图 103
5.4.1 创建并关联输出口 104
5.4.2 旋转时移动按钮 105
5.5 切换视图 106
5.5.1 设计两个视图 108
5.5.2 实现视图切换 109
5.5.3 修改输出口集合 111
5.6 小结 112
第6章 多视图应用程序 113
6.1 多视图应用程序的常见类型 113
6.2 多视图应用程序的体系结构 117
6.2.1 根控制器 119
6.2.2 内容视图剖析 119
6.3 UINavigationController 120
6.3.1 创建视图控制器和nib文件 121
6.3.2 修改应用程序委托 123
6.3.3 修改BIDSwitchView—Controller.h 124
6.3.4 添加视图控制器 124
6.3.5 构建带有工具栏的视图 126
6.3.6 编写根视图控制器 128
6.3.7 实现内容视图 131
6.3.8 转换过程的动画效果 134
6.4 小结 136
第7章 标签栏与选取器 137
7.1 Pickers应用程序 138
7.2 委托和数据源 140
7.3 建立标签栏框架 141
7.3.1 创建文件 141
7.3.2 添加根视图控制器 142
7.3.3 创建TabBarController.xib 143
7.3.4 初次运行 149
7.4 实现日期选取器 150
7.5 实现单组件选取器 153
7.5.1 声明输出口和动作方法 153
7.5.2 构建视图 153
7.5.3 将控制器实现为数据源和委托 155
7.6 实现多组件选取器 158
7.6.1 声明输出口和动作方法 158
7.6.2 构建视图 159
7.6.3 实现控制器 159
7.7 实现依赖组件 162
7.8 使用自定义选取器创建一个简单游戏 168
7.8.1 编写控制器头文件 168
7.8.2 构建视图 169
7.8.3 添加图像资源 170
7.8.4 实现控制器 170
7.8.5 最后的细节 173
7.8.6 链接AudioToolbox框架 177
7.9 小结 178
第8章 表视图简介 179
8.1 表视图基础 179
8.1.1 表视图和表视图单元 180
8.1.2 分组表和无格式表 180
8.2 实现一个简单表 181
8.2.1 设计视图 182
8.2.2 编写控制器 182
8.2.3 添加一个图像 186
8.2.4 表视图单元样式 187
8.2.5 设置缩进级别 189
8.2.6 处理行的选择 190
8.2.7 更改字体大小和行高 192
8.3 定制表视图单元 193
8.3.1 向表视图单元添加子视图 193
8.3.2 创建UITableViewCell子类 194
8.3.3 从nib文件加载UITableViewCell 199
8.4 分组分区和索引分区 202
8.4.1 构建视图 202
8.4.2 导入数据 203
8.4.3 实现控制器 204
8.4.4 添加索引 207
8.5 实现搜索栏 208
8.6 小结 215
第9章 导航控制器和表视图 216
9.1 导航控制器 216
9.1.1 栈的性质 216
9.1.2 控制器栈 217
9.2 由6个部分组成的分层应用程序:Nav 218
9.2.1 子控制器 219
9.2.2 Nav应用程序骨架 223
9.2.3 向项目中添加图像 229
9.2.4 第一个子控制器:展开按钮视图 229
9.2.5 第二个子控制器:检查表 237
9.2.6 第三个子控制器:表行上的控件 242
9.2.7 第四个子控制器:可移动的行 248
9.2.8 第五个子控制器:可删除的行 252
9.2.9 第六个子控制器:可编辑的详细面板 257
9.2.10 其他内容 272
9.3 小结 273
第10章 故事板 274
10.1 创建一个简单的故事板 274
10.2 动态原型单元 277
10.2.1 使用故事板的动态表内容 277
10.2.2 编辑原型单元 278
10.2.3 实现表视图数据源 279
10.2.4 它会加载吗 281
10.3 静态单元 282
10.3.1 实现静态单元 282
10.3.2 实现表视图数据源 283
10.4 联线 285
10.4.1 创建联线导航 285
10.4.2 设计故事板 286
10.4.3 第一个视图转换 287
10.4.4 更为实用的任务列表 288
10.4.5 查看任务详情 289
10.4.6 设置更多联线 290
10.4.7 从列表中传递任务 291
10.4.8 处理任务细节 292
10.4.9 回传详细信息 293
10.4.10 让列表获取详细信息 294
10.4.11 小结 295
第11章 iPad开发注意事项 296
11.1 分割视图和浮动窗口 296
11.1.1 创建SplitView项目 298
11.1.2 在故事板中定义结构 300
11.1.3 使用代码定义功能 301
11.2 显示总统信息 307
11.3 创建浮动窗口 313
11.4 小结 319
第12章 应用程序设置及用户默认设置 320
12.1 设置捆绑包入门 320
12.2 AppSettings应用程序 321
12.2.1 创建项目 324
12.2.2 使用设置捆绑包 325
12.2.3 读取应用程序中的设置 338
12.2.4 在应用程序中修改默认设置 342
12.2.5 注册默认值 344
12.2.6 保证设置有效 345
12.3 小结 348
第13章 数据持久化基础知识 349
13.1 应用程序的沙盒 349
13.1.1 获取Documents目录 350
13.1.2 获取tmp目录 351
13.2 文件保存策略 351
13.2.1 单文件持久化 352
13.2.2 多文件持久化 352
13.3 属性列表 352
13.3.1 属性列表序列化 352
13.3.2 Persistence应用程序的第一个版本 353
13.4 对模型对象进行归档 358
13.4.1 遵循NSCoding协议 358
13.4.2 实现NSCopying协议 360
13.4.3 对数据对象进行归档和取消归档 360
13.4.4 归档应用程序 361
13.5 使用iOS内嵌的SQLite3 364
13.5.1 创建或打开数据库 365
13.5.2 绑定变量 366
13.5.3 SQLite3应用程序 367
13.6 使用CoreData 373
13.6.1 实体和托管对象 374
13.6.2 CoreData应用程序 378
13.7 小结 386
第14章 iCloud之旅 387
14.1 使用UIDocument管理文档存储 387
14.1.1 构建TinyPix 388
14.1.2 创建BIDTinyPix—Document类 388
14.1.3 主代码 391
14.1.4 初始故事板 397
14.1.5 创建BIDTinyPixView类 400
14.1.6 设计详细视图 403
14.2 添加iCloud支持 407
14.2.1 创建provisioningprofile 408
14.2.2 启用iCloud授权 409
14.2.3 如何查询 409
14.2.4 保存在哪里 411
14.2.5 将首选项保存到iCloud 411
14.3 小结 412
第15章 GrandCentralDispatch和后台处理 414
15.1 GrandCentralDispatch 414
15.2 SlowWorker简介 415
15.3 线程基础知识 418
15.4 工作单元 419
15.5 GCD:低级队列 419
15.5.1 傻瓜式操作 420
15.5.2 改进SlowWorker 421
15.6 后台处理 426
15.6.1 应用程序生命周期 427
15.6.2 状态更改通知 427
15.6.3 创建StateLab项目 428
15.6.4 执行状态的变化 430
15.6.5 利用执行状态更改 431
15.6.6 处理不活动状态 432
15.6.7 处理后台状态 436
15.7 小结 443
第16章 使用Quartz和OpenGL绘图 444
16.1 图形世界的两个视图 444
16.2 Quartz2D绘图方法 445
16.2.1 Quartz2D的图形上下文 445
16.2.2 坐标系 446
16.2.3 指定颜色 447
16.2.4 在上下文中绘制图像 449
16.2.5 绘制形状:多边形、直线和曲线 449
16.2.6 Quartz2D工具采样器:模式、梯度、虚线模式 450
16.3 QuartzFun应用程序 451
16.3.1 建立QuartzFun应用程序 451
16.3.2 添加Quartz2D的绘图代码 460
16.3.3 优化QuartzFun应用程序 465
16.4 GLFun应用程序 468
16.4.1 建立GLFun应用程序 468
16.4.2 创建BIDGLFunView类 469
16.4.3 更新BIDView—Controller类 475
16.4.4 更新nib文件 476
16.4.5 完成GLFun应用程序 476
16.5 小结 476
第17章 轻击、触摸和手势 477
17.1 多点触控术语 477
17.2 响应者链 478
17.2.1 响应事件 478
17.2.2 转发事件:保持响应者链的活动状态 479
17.3 多点触控体系结构 480
17.4 4个手势通知方法 480
17.5 TouchExplorer应用程序 481
17.6 Swipes应用程序 485
17.6.1 自动手势识别 488
17.6.2 实现多指滑动 489
17.7 检测多次轻击 491
17.8 检测捏合和旋转 496
17.9 自定义手势 500
17.9.1 CheckPlease应用程序 501
17.9.2 CheckPlease的触摸方法 503
17.10 小结 505
第18章 CoreLocation和MapKit 506
18.1 位置管理器 506
18.1.1 设置精度 507
18.1.2 设置距离筛选器 507
18.1.3 启动位置管理器 508
18.1.4 合理使用位置管理器 508
18.2 位置管理器委托 508
18.2.1 获取位置更新 508
18.2.2 使用CLLocation获取纬度和经度 508
18.2.3 错误通知 510
18.3 试用CoreLocation 511
18.4 将移动路线展现在地图上 516
18.5 小结 519
第19章 陀螺仪和加速计 520
19.1 加速计物理学 520
19.2 不要忘记旋转 521
19.3 CoreMotion和动作管理器 521
19.3.1 基于事件的动作 522
19.3.2 主动动作访问 527
19.3.3 加速计结果 529
19.4 检测摇动 530
19.4.1 内嵌的摇动检测 531
19.4.2 摇动与击碎 531
19.5 将加速计用做方向控制器 536
19.5.1 滚弹珠程序 537
19.5.2 实现BIDBallView类 539
19.5.3 计算弹珠运动 542
19.6 小结 544
第20章 照相机和照片库 545
20.1 图像选取器和UIImagePicker—Controller 545
20.2 实现图像选取器控制器委托 547
20.3 实际测试照相机和照片库 548
20.3.1 设计界面 549
20.3.2 实现照相机视图控制器 550
20.4 小结 553
第21章 集合视图 554
21.1 创建DialogViewer项目 554
21.2 视图控制器类 555
21.3 自定义单元 555
21.4 配置视图控制器 558
21.5 内容单元 559
21.6 实现流式布局 560
21.7 分区标题视图 562
21.8 小结 563
第22章 应用程序本地化 564
22.1 本地化体系结构 564
22.2 字符串文件 565
22.2.1 字符串文件 566
22.2.2 本地化的字符串宏 566
22.3 现实中的iOS:本地化应用程序 567
22.3.1 创建LocalizeMe 568
22.3.2 测试LocalizeMe 570
22.3.3 本地化nib文件 571
22.3.4 本地化图像 575
22.3.5 生成并本地化字符串文件 577
22.3.6 BaseInternationalization 579
22.3.7 应用显示名称的本地化 582
22.4 小结 583
附录A 未来之路 584

亚马逊链接

基本信息

名称: 高流量网站CSS开发技术
作者信息: 作者: 肯尼迪 (Antony Kennedy) [ 英文 pdf ]

简单介绍

构建和维护高流量网站有诸多需要注意的事项和需要克服的障碍,其中有关于技术的,也有关于团队和人员的,肯尼迪、利昂编著的《高流量网站CSS开发技术》正是要把这些内容恰到好处地展现给读者。如何构建快速、高效的高流量网站,并尽可能降低成本,《高流量网站CSS开发技术》会告诉你技巧,也会讲解最佳实践。读完本书,读者便可掌握开发高流量网站的专业技术,最重要的是明白如何充分发挥整个开发团队的力量。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
第1章 流程的价值
1.1 团队
1.2 成长的烦恼
1.3 人员流失
1.4 一致比优秀更重要
1.5 工具
1.5.1 Wiki
1.5.2 错误报告
1.5.3 任务管理
1.5.4 错误跟踪和任务管理
1.5.5 版本控制
1.5.6 Diff工具
1.5.7 解决冲突
1.6 备份
1.6.1 在线备份
1.6.2 桌面备份
1.7 原型设计
1.8 开发方法
1.8.1 瀑布开发
1.8.2 敏捷开发
1.9 小结
第2章 CSS格式指导标准
2.1 CSS格式指导标准
2.2 CSS编写格式
2.2.1 单行与多行
2.2.2 缩进
2.2.3 制表符和空格
2.2.4 冒号和分号
2.3 注释和CSS元数据
2.3.1 现成的标准:CSSDOC
2.3.2 文件信息
2.3.3 内容目录
2.3.4 区块
2.3.5 配色方案
2.3.6 文件夹路径
2.3.7 尺寸单位
2.3.8 文档补丁和错误修正
2.3.9 使用模板
2.4 class和id命名
2.4.1 语义化
2.4.2 可接受的字符
2.4.3 惯例
2.4.4 大小写
2.5 命名空间
2.5.1 可重用的class
2.5.2 CSS命名空间模块
2.6 小结
第3章 基本原理
3.1 层叠:来源、重要性和继承
3.1.1 来源和重要性
3.1.2 继承
3.1.3 继承和通用选择器
3.2 特殊性
3.2.1 特殊性计算
3.2.2 !important声明
3.2.3 命名空间和特殊性
3.2.4 使用工具
3.3 编码
3.4 本地化
3.5 浏览器特定CSS
3.5.1 补丁和滤镜
3.5.2 CSS表达式
3.5.3 厂商特定扩展
3.5.4 媒体查询
3.5.5 条件注释
3.6 何时以及如何使用补丁
3.6.1 “安全”补丁
3.6.2 真实的世界
3.7 服务器端用户代理检测
3.8 一些浏览器渲染差异的例子
3.8.1 怪异模式
3.8.2 IE盒模型
3.8.3 hasLayout
3.8.4 实验性CSS
3.9 小结
第4章 框架和整合
4.1 框架
4.1.1 Blueprint CSS
4.1.2960 Grid System
4.1.3 YUI 3 Grids
4.1.4 其他用途
4.1.5 重置样式表
4.1.6 为什么要建立自己的框架
4.2 面向对象的CSS
4.2.1 面向对象编程
4.2.2 OOCSS
4.3 覆盖CSS
4.4 与第三方代码相处
4.5 防御式CSS
4.6 脆弱的CSS
4.7 CSS中的元数据
4.8 小结
第5章 品牌实施
5.1 什么是品牌
5.2 品牌指导标准
5.2.1 指导标准的进化
5.2.2 设计库
5.3 字体排版
5.3.1 图像替换与灵活性
5.3.2 font—face
5.3.3 后备字体
5.3.4 尺寸单位
5.4 颜色
5.4.1 多种配色方案
5.4.2 颜色参考
5.4.3 动态颜色
5.4.4 后备颜色
5.5 布局
5.5.1 栅格
5.5.2 模板
5.6 主题
5.7 灵活的CSS和品牌进化
5.8 小结
第6章 CSS与无障碍访问
6.1 缺陷问题概览
6.1.1 弱视
6.1.2 盲人
6.1.3 色盲
6.1.4 运动障碍
6.1.5 听力障碍
6.1.6 认知障碍
6.1.7 年幼
6.1.8 年老
6.1.9 癫痫
6.2 无障碍访问的指导标准
6.3 辅助技术
6.3.1 屏幕阅读器
6.3.2 用CSS隐藏内容
6.3.3 只有键盘的用户
6.3.4 其他辅助设备
6.4 设计和布局
6.4.1 颜色
6.4.2 字体和单位
6.4.3 Web字体和失读症
6.4.4 用户自定义
6.4.5 样式切换
6.5 WAI—ARIA
6.6 设备和环境缺陷
6.7 渐进增强还是优雅降级
6.8 分级浏览器支持
6.9 小结
第7章 设备
7.1 媒体类型
7.1.1 all
7.1.2 braille
7.1.3 embossed
7.1.4 handheld
7.1.5 print
7.1.6 projection
7.1.7 screen
7.1.8 speech
7.1.9 tty
7.1.10 tv
7.2 媒体查询
7.2.1 width
7.2.2 height
7.2.3 device—width
7.2.4 device—height
7.2.5 orientation
7.2.6 aspect—ratio
7.2.7 device—aspect—ratio
7.2.8 color
7.2.9 color—index
7.2.10 monochrome
7.2.11 resolution
7.2.12 scan
7.2.13 grid
7.2.14 transform—2d
7.2.15 transform—3d
7.2.16 transition
7.2.17 animation
7.3 Modernizr
7.4 打印样式表
7.5 移动设备
7.5.1 另一个网站
7.5.2 使用媒体查询指定移动设备
7.5.3 做一个应用程序代替
7.6 其他设备
7.7 搜索引擎优化
7.8 小结
第8章 性能
8.1 净荷:注意文件大小
8.1.1 命名规范
8.1.2 文件命名
8.1.3 文件夹结构
8.1.4 语法
8.1.5 精简
8.1.6 压缩
8.1.7 Apache
8.1.8 Microsoft IIS
8.1.9 内容分发网络和域名
8.1.10 减少HTTP请求数远比文件大小重要
8.1.11 域名查询
8.1.12 连接
8.1.13 发送
8.1.14 等待
8.1.15 接收
8.1.16 合并
8.1.17 CSS图片合并
8.2 data URI
8.3 缓存
8.4 应该缓存哪些内容
8.5 版本
8.6 试试离线存储
8.7 渲染和解析
8.8 使用JavaScript修改属性
8.9 动画
8.10 硬件加速
8.11 小结
第9章 动态CSS
9.1 CSS扩展和预处理器
9.2 LESS
9.2.1 变量
9.2.2 混合
9.2.3 嵌套规则
9.2.4 运算
9.2.5 颜色函数
9.2.6 命名空间
9.2.7 注释
9.2.8 导入
9.2.9 小结
9.3 Sass
9.3.1 变量
9.3.2 嵌套选择器
9.3.3 条件逻辑
9.3.4 循环
9.3.5 注释
9.3.6 继承
9.3.7 混合
9.3.8 颜色
9.3.9 导入
9.3.10 小结
9.4 评估第三方技术
9.5 使用服务器端技术生成CSS
9.6 持续集成
9.7 巧妙地构建脚本
9.8 缓存注意事项
9.9 小结
第10章 测试与调试
10.1 快速开发
10.1.1 合并CSS文件的构建脚本
10.1.2 压缩CSS的构建脚本
10.1.3 无刷新重载CSS
10.1.4 缓存文件
10.1.5 IE的bug
10.2 调试
10.2.1 Firebug(Firefox)
10.2.2 Web Developer(用于Firefox或Chrome)
10.2.3 Developer Tools(IE8+)
10.2.4 Web Inspector(Safari)
10.2.5 Developer Tools(Chrome)
10.2.6 IE Developer Toolbar
10.2.7 Opera蜻蜓
10.3 代理工具
10.3.1 Fiddler
10.3.2 Charles
10.4 测试
10.4.1 分级浏览器支持
10.4.2 运行多个版本的IE
10.4.3 模拟其他设备
10.4.4 自动生成网页截图
10.5 小结
第11章 创建你自己的CSS框架
11.1 为Igloo冰箱配件公司制作网站
11.2 分析设计图
11.2.1 栅格系统
11.2.2 可重用组件
11.2.3 配色方案
11.2.4 无障碍访问问题
11.2.5 沟通很重要
11.3 编写CSS
11.3.1 注释
11.3.2 单位
11.3.3 基准样式
11.3.4 结构
11.3.5 默认字体排版
11.3.6 全局元素
11.3.7 组件和可重用类
11.3.8 一次性样式
11.3.9 取舍之道
11.3.10 跨浏览器一致性
11.3.11 无障碍访问及超链接
11.4 文档和设计模式库
11.5 小结
附录1 CSS指导标准
附录2 无障碍访问指导标准
附录3 浏览器支持指南
附录4 开发流程

亚马逊链接

基本信息

名称: Java虚拟机规范(Java SE 7版)
作者信息: 作者: Tim Lindholm [ 中文 pdf ]

简单介绍

《Java虚拟机规范(Java SE7版)》由林德霍尔姆著,本书完整而准确地阐释了Java虚拟机各方面的细节,围绕.Java虚拟机整体架构、编译器、class文件格式、加载、链接与初始化、指令集等核心主题对Java虚拟机进行全面而深入的分析,深刻揭示Java虚拟机的工作原理。同时,基于最新Java SE 7平台,它详细介绍了Java SE 7中新加入的lnvokeDynamic指令和方法句柄机制,给出了在Java SE 6期间引入的类型检查检验器的原理证明。本书还介绍了Java SE 5中对class文件格式的扩展变动,例如泛型和注解等。另外还介绍了Java内存模型的指令操作和初始化规则。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
目 录
译者序
前言
第2版前言
第1版前言
第1章 引言1
1.1 简史1
1.2 Java虚拟机2
1.3 各章节摘要2
1.4 说明3
第2章 Java虚拟机结构4
2.1 class文件格式4
2.2 数据类型5
2.3 原始类型与值5
2.3.1 整数类型与整型值6
2.3.2 浮点类型、取值集合及浮点值6
2.3.3 returnAddress类型和值8
2.3.4 boolean类型8
2.4 引用类型与值9
2.5 运行时数据区9
2.5.1 pc寄存器9
2.5.2 Java虚拟机栈9
2.5.3 Java堆10
2.5.4 方法区11
2.5.5 运行时常量池11
2.5.6 本地方法栈11
2.6 栈帧12
2.6.1 局部变量表13
2.6.2 操作数栈13
2.6.3 动态链接14
2.6.4 方法正常调用完成14
2.6.5 方法异常调用完成15
2.7 对象的表示15
2.8 浮点算法15
2.8.1 Java虚拟机和IEEE 754中的浮点算法15
2.8.2 浮点模式16
2.8.3 数值集合转换16
2.9 特殊方法17
2.10 异常18
2.11 字节码指令集简介20
2.11.1 数据类型与Java虚拟机21
2.11.2 加载和存储指令23
2.11.3 算术指令23
2.11.4 类型转换指令24
2.11.5 对象创建与操作26
2.11.6 操作数栈管理指令26
2.11.7 控制转移指令27
2.11.8 方法调用和返回指令27
2.11.9 抛出异常28
2.11.10 同步28
2.12 类库28
2.13 公有设计,私有实现29
第3章 Java虚拟机编译器30
3.1 示例的格式说明30
3.2 常量、局部变量和控制结构的使用31
3.3 算术运算35
3.4 访问运行时常量池35
3.5 更多控制结构示例36
3.6 接收参数39
3.7 方法调用39
3.8 使用类实例42
3.9 数组43
3.10 编译switch语句45
3.11 使用操作数栈46
3.12 抛出异常和处理异常47
3.13 编译finally语句块50
3.14 同步53
3.15 注解54
第4章 class文件格式55
4.1 ClassFile结构56
4.2 各种内部表示名称60
4.2.1 类和接口的二进制名称60
4.2.2 非全限定名60
4.3 描述符和签名61
4.3.1 语法符号61
4.3.2 字段描述符61
4.3.3 方法描述符63
4.3.4 签名63
4.4 常量池66
4.4.1 CONSTANT_Class_info结构67
4.4.2 CONSTANT_Fieldref_info、CONSTANT_Methodref_info和CONSTANT_Interface Methodref_info结构67
4.4.3 CONSTANT_String_info结构69
4.4.4 CONSTANT_Integer_info和CONSTANT_Float_info结构69
4.4.5 CONSTANT_Long_info和CONSTANT_Double_info结构70
4.4.6 CONSTANT_NameAndType_info结构71
4.4.7 CONSTANT_Utf8_info结构72
4.4.8 CONSTANT_MethodHandle_info结构74
4.4.9 CONSTANT_MethodType_info结构74
4.4.10 CONSTANT_InvokeDynamic_info结构75
4.5 字段75
4.6 方法77
4.7 属性80
4.7.1 自定义和命名新的属性81
4.7.2 ConstantValue属性81
4.7.3 Code属性82
4.7.4 StackMapTable属性85
4.7.5 Exceptions属性91
4.7.6 InnerClasses属性92
4.7.7 EnclosingMethod属性94
4.7.8 Synthetic属性94
4.7.9 Signature属性95
4.7.10 SourceFile属性96
4.7.11 SourceDebugExtension属性96
4.7.12 LineNumberTable属性97
4.7.13 LocalVariableTable属性98
4.7.14 LocalVariableTypeTable属性99
4.7.15 Deprecated属性101
4.7.16 RuntimeVisibleAnnotations属性101
4.7.17 RuntimeInvisible Annotations属性105
4.7.18 RuntimeVisibleParameter Annotations属性106
4.7.19 RuntimeInvisibleParameter Annotations属性107
4.7.20 AnnotationDefault属性108
4.7.21 BootstrapMethods属性108
4.8 格式检查110
4.9 Java虚拟机代码约束110
4.9.1 静态约束110
4.9.2 结构化约束113
4.10 class文件校验115
4.10.1 类型检查验证116
4.10.2 类型推导验证178
4.11 Java虚拟机限制184
第5章 加载、链接与初始化186
5.1 运行时常量池186
5.2 虚拟机启动188
5.3 创建和加载188
5.3.1 使用引导类加载器来加载类型190
5.3.2 使用用户自定义类加载器来加载类型190
5.3.3 创建数组类191
5.3.4 加载限制191
5.3.5 从class文件表示得到类192
5.4 链接193
5.4.1 验证194
5.4.2 准备194
5.4.3 解析195
5.4.4 访问控制201
5.4.5 方法覆盖201
5.5 初始化202
5.6 绑定本地方法实现203
5.7 Java虚拟机退出203
第6章 Java虚拟机指令集204
6.1 设定:“必须”的含义204
6.2 保留操作码204
6.3 虚拟机错误205
6.4 指令描述格式205
6.5 指令集描述207
第7章 操作码助记符293
附录A Limited License Grant300

亚马逊链接