图书介绍
Java程序员修炼之道PDF|Epub|txt|kindle电子书版本网盘下载
![Java程序员修炼之道](https://www.shukui.net/cover/51/31083669.jpg)
- BenjaminJ·Evans,MartijnVerburg 著
- 出版社: 北京:人民邮电出版社
- ISBN:9787115321954
- 出版时间:2013
- 标注页数:396页
- 文件大小:146MB
- 文件页数:418页
- 主题词:JAVA语言-程序设计
PDF下载
下载说明
Java程序员修炼之道PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一部分 用Java 7做开发2
第1章 初识Java 72
1.1语言与平台2
1.2 Coin项目:浓缩的都是精华4
1.3 Coin项目中的修改7
1.3.1 switch语句中的String7
1.3.2更强的数值文本表示法8
1.3.3改善后的异常处理9
1.3.4 try-with-resources(TWR)11
1.3.5钻石语法13
1.3.6简化变参方法调用14
1.4小结15
第2章 新I/O17
2.1 Java 1/O简史18
2.1.1 Java 1.0到1.319
2.1.2在Java 1.4中引入的NIO19
2.1.3下一代I/O-NIO.220
2.2文件I/O的基石:Path20
2.2.1创建一个Path23
2.2.2从Path中获取信息23
2.2.3移除冗余项24
2.2.4转换Path25
2.2.5 NIO.2 Path和Java已有的File类25
2.3处理目录和目录树26
2.3.1在目录中查找文件26
2.3.2遍历目录树27
2.4 NIO.2的文件系统I/O28
2.4.1创建和删除文件29
2.4.2文件的复制和移动30
2.4.3文件的属性31
2.4.4快速读写数据34
2.4.5文件修改通知35
2.4.6 SeekableByteChannel37
2.5异步I/O操作37
2.5.1将来式38
2.5.2回调式40
2.6 Socket和Channel的整合41
2.6.1 NetworkChannel42
2.6.2 MulticastChannel42
2.7小结43
第二部分 关键技术46
第3章 依赖注入46
3.1知识注入:理解IoC和DI46
3.1.1控制反转47
3.1.2依赖注入48
3.1.3转成DI49
3.2 Java中标准化的DI53
3.2.1 @Inject注解54
3.2.2 @aQualifier注解55
3.2.3 @Named注解57
3.2.4 @Scope注解57
3.2.5 @Singleton注解57
3.2.6接口Provider﹤T﹥58
3.3 Java中的DI参考实现:Guice 359
3.3.1 Guice新手指南59
3.3.2水手绳结:Guice的各种绑定62
3.3.3在Guice中限定注入对象的生命周期64
3.4小结66
第4章 现代并发67
4.1并发理论简介68
4.1.1解释Java线程模型68
4.1.2设计理念69
4.1.3这些原则如何以及为何会相互冲突70
4.1.4系统开销之源71
4.1.5一个事务处理的例子71
4.2块结构并发(Java 5之前)72
4.2.1同步与锁73
4.2.2线程的状态模型74
4.2.3完全同步对象74
4.2.4死锁76
4.2.5为什么是synchronized77
4.2.6关键字volatil78
4.2.7不可变性79
4.3现代并发应用程序的构件80
4.3.1原子类:java.util.concurrent.atomic81
4.3.2线程锁:java.util.concurrent.locks81
4.3.3 CountDownLatch85
4.3.4 ConcurrentHashMap86
4.3.5 CopyOnWriteArrayList87
4.3.6 Queue90
4.4控制执行95
4.4.1任务建模96
4.4.2 ScheduledThread-PoolExecutor97
4.5分支/合并框架98
4.5.1一个简单的分支/合并例子99
4.5.2 ForkJoinTask与工作窃取101
4.5.3并行问题102
4.6 Java内存模型103
4.7小结104
第5章 类文件与字节码106
5.1类加载和类对象107
5.1.1加载和连接概览107
5.1.2验证108
5.1.3class对象108
5.1.4类加载器109
5.1.5示例:依赖注入中的类加载器110
5.2使用方法句柄111
5.2.1 MethodHandle112
5.2.2 MethodType112
5.2.3查找方法句柄113
5.2.4示例:反射、代理与方法句柄114
5.2.5为什么选择MethodHandle116
5.3检查类文件117
5.3.1介绍javap117
5.3.2方法签名的内部形式118
5.3.3常量池119
5.4字节码121
5.4.1示例:反编译类121
5.4.2运行时环境123
5.4.3操作码介绍124
5.4.4加载和储存操作码125
5.4.5数学运算操作码125
5.4.6执行控制操作码126
5.4.7调用操作码126
5.4.8平台操作操作码127
5.4.9操作码的快捷形式127
5.4.10示例:字符串拼接127
5.5 invokedynamic129
5.5.1 invokedynamic如何工作129
5.5.2示例:反编译invokedynamic调用130
5.6小结132
第6章 理解性能调优133
6.1性能术语134
6.1.1等待时间135
6.1.2吞吐量135
6.1.3利用率135
6.1.4效率135
6.1.5容量136
6.1.6扩展性136
6.1.7退化136
6.2务实的性能分析法136
6.2.1知道你在测量什么137
6.2.2知道怎么测量137
6.2.3知道性能目标是什么138
6.2.4知道什么时候停止优化139
6.2.5知道高性能的成本139
6.2.6知道过早优化的危险140
6.3哪里出错了?我们担心的原因140
6.3.1过去和未来的性能趋势:摩尔定律141
6.3.2理解内存延迟层级142
6.3.3为什么Java性能调优存在困难143
6.4一个来自于硬件的时间问题144
6.4.1硬件时钟144
6.4.2麻烦的nanoTime()144
6.4.3时间在性能调优中的作用146
6.4.4案例研究:理解缓存未命中147
6.5垃圾收集149
6.5.1基本算法149
6.5.2标记和清除150
6.5.3 jmap152
6.5.4与GC相关的JVM参数155
6.5.5读懂GC日志156
6.5.6用VisualVM查看内存使用情况157
6.5.7逸出分析159
6.5.8并发标记清除160
6.5.9新的收集器:G1161
6.6 HotSpot的JIT编译162
6.6.1介绍HotSpot163
6.6.2内联方法164
6.6.3动态编译和独占调用165
6.6.4读懂编译日志166
6.7小结167
第三部分 JVM上的多语言编程170
第7章 备选JVM语言170
7.1 Java太笨?纯粹诽谤170
7.1.1整合系统171
7.1.2函数式编程的基本原理172
7.1.3映射与过滤器173
7.2语言生态学174
7.2.1解释型与编译型语言175
7.2.2动态与静态类型175
7.2.3命令式与函数式语言176
7.2.4重新实现的语言与原生语言176
7.3 JVM上的多语言编程177
7.3.1为什么要用非Java语言178
7.3.2崭露头角的语言新星179
7.4如何挑选称心的非Java语言180
7.4.1低风险181
7.4.2与Java的交互操作181
7.4.3良好的工具和测试支持182
7.4.4备选语言学习难度182
7.4.5使用备选语言的开发者182
7.5 JVM对备选语言的支持183
7.5.1非Java语言的运行时环境183
7.5.2编译器小说184
7.6小结185
第8章 Groovy: Java的动态伴侣187
8.1 Groovy入门189
8.1.1编译和运行189
8.1.2 Groovy控制台190
8.2 Groovy 101:语法和语义191
8.2.1默认导入192
8.2.2数字处理192
8.2.3变量、动态与静态类型、作用域193
8.2.4列表和映射语法195
8.3与Java的差异——新手陷阱196
8.3.1可选的分号和返回语句196
8.3.2可选的参数括号197
8.3.3访问限定符197
8.3.4异常处理198
8.3.5 Groovy中的相等198
8.3.6内部类199
8.4 Java不具备的Groovy特性199
8.4.1 GroovyBean199
8.4.2安全解引用操作符200
8.4.3猫王操作符201
8.4.4增强型字符串201
8.4.5函数字面值202
8.4.6内置的集合操作203
8.4.7对正则表达式的内置支持204
8.4.8简单的XML处理205
8.5 Groovy与Java的合作207
8.5.1从Groovy调用Java207
8.5.2从Java调用Groovy208
8.6小结211
第9章 Scala:简约而不简单212
9.1走马观花Scala213
9.1.1简约的Scala213
9.1.2 match表达式215
9.1.3 case类217
9.1.4 actor218
9.2 Scala能用在我的项目中吗219
9.2.1 Scala和Java的比较219
9.2.2何时以及如何开始使用Scala220
9.2.3 Scala可能不适合当前项目的迹象220
9.3让代码因Scala重新绽放221
9.3.1使用编译器和REPL221
9.3.2类型推断222
9.3.3方法223
9.3.4导入224
9.3.5循环和控制结构224
9.3.6 Scala的函数式编程225
9.4 Scala对象模型:相似但不同226
9.4.1一切皆对象226
9.4.2构造方法228
9.4.3特质228
9.4.4单例和伴生对象230
9.4.5 case类和match表达式232
9.4.6警世寓言234
9.5数据结构和集合235
9.5.1 List235
9.5.2 Map238
9.5.3泛型239
9.6 actor介绍242
9.6.1代码大舞台242
9.6.2用mailbox跟actor通信243
9.7小结244
第10章 Clojure:更安全地编程245
10.1 Clojure介绍245
10.1.1 Clojure的Hello World246
10.1.2 REPL入门247
10.1.3犯了错误248
10.1.4学着去爱括号248
10.2寻找Clojure:语法和语义249
10.2.1特殊形式新手营249
10.2.2列表、向量、映射和集250
10.2.3数学运算、相等和其他操作252
10.3使用函数和循环253
10.3.1一些简单的Clojure函数253
10.3.2 Clojure中的循环255
10.3.3读取器宏和派发器256
10.3.4函数式编程和闭包257
10.4 Clojure序列258
10.4.1懒序列260
10.4.2序列和变参函数261
10.5 Clojure与Java的互操作262
10.5.1从Clojure中调用Java262
10.5.2 Clojure值的Java类型263
10.5.3使用Clojure代理264
10.5.4用REPL做探索式编程264
10.5.5在Java中使用Clojure265
10.6 Clojure并发265
10.6.1未来式与并行调用266
10.6.2 ref形式267
10.6.3代理271
10.7小结272
第四部分 多语种项目开发274
第11章 测试驱动开发274
11.1 TDD概览275
11.1.1一个测试用例276
11.1.2多个测试用例280
11.1.3深入思考红—绿—重构循环282
11.1.4 JUnit283
11.2测试替身285
11.2.1虚设对象286
11.2.2存根对象287
11.2.3伪装替身290
11.2.4模拟对象295
11.3 ScalaTest296
11.4小结298
第12章 构建和持续集成300
12.1与Maven 3相遇302
12.2 Maven 3入门项目303
12.3用Maven 3构建Java7developer项目305
12.3.1 POM305
12.3.2运行示例311
12.4 Jenkins:满足CI需求314
12.4.1基础配置315
12.4.2设置任务316
12.4.3执行任务319
12.5 Maven和Jenkins代码指标320
12.5.1安装Jenkins插件321
12.5.2 用 Checkstyle保持代码一致性322
12.5.3用FindBugs设定质量标杆323
12.6 Leiningen325
12.6.1 Leiningen入门326
12.6.2 Leiningen的架构326
12.6.3 Hello Lein327
12.6.4用Leiningen做面向REPL的TDD329
12.6.5用Leiningen打包和部署330
12.7小结332
第13章 快速Web开发333
13.1 Java Web框架的问题334
13.1.1 Java编译为什么不好335
13.1.2静态类型为什么不好335
13.2选择Web框架的标准336
13.3 Grails入门338
13.4 Grails快速启动项目338
13.4.1创建域对象340
13.4.2测试驱动开发340
13.4.3域对象持久化342
13.4.4创建测试数据343
13.4.5控制器343
13.4.6 GSP/JSP页面344
13.4.7脚手架和UI的自动化创建346
13.4.8快速周转的开发347
13.5深入Grails347
13.5.1日志347
13.5.2 GORM:对象关系映射348
13.5.3 Grails插件349
13.6 Compojure入门350
13.6.1 Hello Compojure350
13.6.2 Ring和路由352
13.6.3 Hiccup353
13.7我是不是一只水獭353
13.7.1项目设置354
13.7.2核心函数357
13.8小结359
第14章 保持优秀361
14.1对Java 8的期待361
14.1.1 lambda表达式(闭包)362
14.1.2模块化(拼图Jigsaw)363
14.2多语言编程365
14.2.1语言的互操作性及元对象协议365
14.2.2多语言模块化366
14.3未来的并发趋势367
14.3.1多核的世界367
14.3.2运行时管理的并发367
14.4 JVM的新方向368
14.4.1 VM的合并368
14.4.2协同程序369
14.4.3元组370
14.5小结372
附录A java7developer:源码安装373
附录B glob模式语法及示例380
附录C 安装备选JVM语言382
附录D Jenkins的下载和安装388
附录E java7developer:Maven POM390