欢迎光临本店     登录 注册   加入收藏
  •   
欢迎光临清华大学出版社第三事业部!

此页面上的内容需要较新版本的 Adobe Flash Player。

获取 Adobe Flash Player

当前位置: 首页 > 科技 > 计算机与网络 > 程序语言与软件开发 > 修炼Java开发技术:在架构中体验设计模式和算法之美

浏览历史

修炼Java开发技术:在架构中体验设计模式和算法之美

修炼Java开发技术:在架构中体验设计模式和算法之美

prev next

  • 商品货号:2014051501
  • 商品重量:0克
    作者:于广编著
    出版社:清华大学出版社
    图书书号/ISBN:9787302316169
    出版日期:2013年4月第1次印刷
    开本:16
    图书页数:610
    图书装订:平装
    图书规格:185mm×260mm
    版次:2013年4月第1版
    印张:38.5
    字数:943千字
  • 上架时间:2014-05-15
    商品点击数:1108
  • 定价:¥79.00元
    本店售价:¥79.00元
    注册用户:¥79.00元
    vip:¥75.05元
    黄金等级:¥71.10元
    用户评价: comment rank 5
  • 商品总价:
  • 购买数量:

内容简介:

商品附加资源

 

内 容 简 介
本书细致地分析了Java数据结构、设计模式、算法和架构的基本知识,与读者一起在架构中体验设计模式和算法之美。本书内容新颖、知识全面、讲解详细,全书共分27章,内容循序渐进,并且逐一做到了深入剖析。
本书适合Java各个级别的程序员、研发人员及在职程序员阅读和使用,也可以作为相关培训学校和大专院校相关专业的教学用书。

前    言
  Java语言自诞生以来,经过十多年的发展和应用,已经成为当今最流行的编程语言之一。在某权威编程语言排行榜中,Java的使用率始终居于第一位。现在全球已有超过15亿部手机和手持设备应用了Java技术。同时,Java技术因其跨平台特性和良好的可移植性,成为广大软件开发技术人员的挚爱,是全球程序员的首选开发平台之一。
  日益成熟的Java语言编程技术现在已无处不在。使用该编程技术可以进行桌面程序应用、Web应用、分布式系统和嵌入式系统应用的开发,并且在信息技术等各个领域中得到了广泛的应用。
  本书全面介绍了Java算法、数据结构、设计模式和架构的核心知识,全书内容深入而翔实,作者用通俗的语言将大师级的知识展现在读者的面前。
1.本书内容
  本书细致地分析Java数据结构、设计模式、算法和架构的基本知识,与读者一起在架构中体验设计模式和算法之美。
  本书内容新颖、知识全面、讲解详细,全书分为27章。第1章讲解什么是程序员的最高境界;第2章讲解架构中的设计原则基础知识;第3~24章依次讲解设计模式的核心知识(囊括23种设计模式),并通过具体实例演示各个设计模式的技术原理和具体使用流程,并且拓展各个模式在实际Java项目中的具体应用技巧;第25章深入探讨数据结构的核心知识;第26章深入分析“最优算法为最美”的理论知识;第27章“架构源于生活”纵览全书的知识体系,对软件架构和重构进行深入、系统的分析,为全书划上一个完美的句号。全书内容循序渐进,并且逐一做到深入剖析。
2.本书特色
  本书内容相当丰富,实例内容覆盖全面,可满足Java程序员成长道路上方方面面的需求。我们的目标是通过一本图书提供多本图书的价值,读者可以根据自己的需要,有选择地阅读,以完善自己的知识和技能结构。在内容的编写上,本书具有以下特色。
  (1) 专家写作,内容专业而深入
  本书是国内一线著名的Java专家级作者的力作。为了确保本书的广度和深度,并没有将大量篇幅用在没有实际应用的知识上,而是专注于各个基本知识的具体细节,尽量涉及了每种知识中最为重要的内容,并且讨论了相关的高级用法和技术。
  本书既是介绍性书籍,又是深入研究的技术性书籍,实现了高级技术与介绍性知识并重的效果。为了达到这一目标,作者做过大量的研究,比如参与论坛讨论,开发大量的实际项目,参加学术会议和研讨会,同时跟制定Java规范的专家组进行沟通,与全世界顶级专家进行合作。
  
(2) 结构合理
  本书从用户的实际需要出发,科学安排知识结构,内容由浅入深,叙述清楚,具有很强的知识性和实用性,反映了作为一名架构师所必须具备的知识。同时全书精心筛选了最具代表性、读者最关心的典型知识点。
  (3) 易学易懂
  本书条理清晰、语言简洁,可帮助读者快速掌握每个知识点;每个部分既相互联系又自成体系,使读者既可以按照本书编排的章节顺序进行学习,也可以根据自己的需求对某一章节进行有针对性的学习。
  (4) 由浅入深
  本书从架构起源和设计原则等知识入手,逐步介绍设计模式、数据结构、算法、架构等知识。让读者在没有编程基础的情况下,也能很快地掌握与架构密切相关的各种技术。
  (5) 实用性强
  本书彻底摒弃枯燥的理论和简单的操作,注重实用性和可操作性,详细讲解了各个部分的源码知识,使读者在掌握相关操作技能的同时,还能学习到相应的基础知识。
3.读者对象
  本书适合下列类型读者阅读和学习:
   ( 初学编程的自学者    ( 编程爱好者
   ( 大中专院校的教师和学生   ( 相关培训机构的教师和学员
   ( 毕业设计的学生     ( 初、中级程序开发人员
   ( 程序测试及维护人员    ( 参加实习的初级程序员
   ( 在职程序员      ( 资深程序员
  在编写本书的过程中,得到了清华大学出版社工作人员的大力支持。因作者水平有限,疏漏之处在所难免,恳请读者提出意见或建议,以便再版时修订。另外,为方便读者学习,特开通了技术支持QQ群,群号为75593028,欢迎读者加入。
  
  目    录

第1章  什么是程序员的最高境界 1
1.1  在浩瀚的Java体系中探索学习
过程 2
1.2  程序员的六个阶段 2
1.3  Java程序员的三层境界 4
1.4  如何成为一名合格的Java初级
程序员 5
1.5  程序员的职场晋升之路 6
1.5.1  综合才能型发展路线图 7
1.5.2  初入职场,程序员的上升
空间在哪里 8
1.6  一般程序员的必经之路 10
1.7  架构师们在巅峰处 11
1.7.1  什么是架构师 11
1.7.2  架构师的重要作用 12
1.7.3  如何成为优秀的软件
架构师 12
1.7.4  架构师的自我培养过程 13
1.7.5  Java架构师的发展展望 13
1.7.6  算法和数据结构的重要性 14
1.8  实现架构之美 15
1.8.1  什么样的架构才算是一个
美丽的架构 16
1.8.2  如何成就一个美丽的架构 16
1.8.3  现实中的架构者 17
第2章  架构中的设计原则 19
2.1  架构的任务 20
2.1.1  什么是好的架构 20
2.1.2  软件架构师的角色 21
2.1.3  架构师的第一任务 21
2.2  架构中的设计原则 22
2.2.1  单一职责原则 22
2.2.2  里氏替换原则(LSP) 25
2.2.3  依赖注入原则(DIP) 28
2.2.4  接口分离原则(ISP) 30
2.2.5  迪米特原则(LOD) 33
2.2.6  开闭原则(OCP) 36
2.3  算法 39
2.3.1  什么是算法 39
2.3.2  在计算机中的算法 40
2.3.3  为什么算法是程序的灵魂 41
2.3.4  表示算法的方法 42
2.3.5  学好算法的秘诀 44
2.4  数据结构 45
2.4.1  Collection接口 45
2.4.2  List接口 46
2.4.3  ArrayList类 46
2.4.4  Vector类 47
2.4.5  Stack类 47
2.4.6  Set接口 47
2.4.7  Map接口 48
2.4.8  Hashtable类 48
2.4.9  HashMap类 49
2.4.10  WeakHashMap类 49
2.5  飞人的号码 49
2.5.1  何谓设计模式 49
2.5.2  模式的四个基本要素 50
2.5.3  二十三个设计模式 50
第3章  工厂模式 55
3.1  工厂模式介绍 56
3.2  简单工厂模式 56
3.2.1  思想源于接口 58
3.2.2  采用简单工厂模式解决问题
的思路 58
3.2.3  举例说明 59
3.2.4  简单工厂中方法的写法 63
3.2.5  简单工厂模式的优点
和缺点 66
3.3  工厂方法模式 67
3.3.1  工厂方法模式的构成 67
3.3.2  举例说明 68
3.3.3  简单工厂模式与工厂方法
模式的对比 74
3.4  抽象工厂模式 75
3.4.1  抽象工厂模式的起源
和结构 76
3.4.2  举例说明 78
3.4.3  使用抽象工厂模式的情形 87
3.4.4  抽象工厂模式的优点
和缺点 88
第4章  单例模式 89
4.1  单例模式介绍 90
4.1.1  实现单例的方式 90
4.1.2  单例模式的特点 90
4.1.3  单例模式的功能 91
4.1.4  单例模式的范围 91
4.1.5  单例模式的命名 91
4.2  单例模式的种类 92
4.2.1  懒汉式单例 92
4.2.2  饿汉式单例 93
4.2.3  登记式单例 94
4.3  举例说明 95
4.3.1  读取配置文件 96
4.3.2  两种实现方式 100
4.3.3  单例模式的调用顺序 102
4.3.4  单例模式的一个应用 103
4.3.5  一个JDBC数据库工具类 105
4.4  双重检查加锁 106
4.5  延迟加载 107
4.5.1  Java中缓存的基本实现 107
4.5.2  利用缓存来实现单例模式 108
4.6  一种更好的方式 109
4.7  单例和枚举 110
4.8  总结单例模式的本质 110
4.9  单例模式的优点和缺点 112
第5章  建造者模式 115
5.1  建造者模式介绍 116
5.1.1  适用场景 116
5.1.2  建造者模式的结构 117
5.1.3  复杂对象 117
5.2  举例说明 119
5.2.1  汽车部件问题 120
5.2.2  三维模型 123
5.2.3  与工厂模式的区别 130
5.3  对建造者模式的深入理解 132
5.4  对建造者模式的总结 134
第6章  原型模式 137
6.1  原型模式介绍 138
6.1.1  定义 138
6.1.2  实现拷贝的方法 139
6.2  原型模式浅拷贝与原型模式
深度拷贝 140
6.2.1  什么是浅拷贝和深拷贝 141
6.2.2  浅拷贝和深拷贝的应用 142
6.3  举例说明 145
6.3.1  信用卡账单处理问题 146
6.3.2  某公司的OA办公问题 152
6.4  对原型模式的总结 158
第7章  适配器模式 161
7.1  适配器模式介绍 162
7.1.1  适配器模式的结构 162
7.1.2  两种适配器 163
7.2  举例说明 166
7.2.1  购买耳机问题 166
7.2.2  验证给定客户地址 167
7.3  对适配器模式的总结 170
第8章  桥梁模式 173
8.1  桥梁模式介绍 174
8.1.1  桥梁模式的结构 174
8.1.2  角色之间的关联 175
8.2  使用桥梁模式的场景 176
8.2.1  不使用模式的解决方案 176
8.2.2  使用桥梁模式来解决问题 180
8.2.3  桥梁模式在Java中的
典型应用 184
8.3  详解桥梁模式 185
8.3.1  几个概念 185
8.3.2  谁来桥接的问题 187
8.4  举例说明 187
8.4.1  由抽象部分的对象自己来创建
相应的Implementor对象 187
8.4.2  在Abstraction中创建默认的
Implementor对象 189
8.4.3  使用抽象工厂或者是简单
工厂 190
8.4.4  使用IoC/DI的方式 190
8.5  使用桥梁模式实现JDBC 190
8.6  广义桥接 192
8.7  对桥梁模式的总结 194
8.7.1  对设计原则的体现 195
8.7.2  何时使用桥梁模式 195
8.7.3  桥梁模式的优点 196
第9章  组合模式 197
9.1  组合模式介绍 198
9.1.1  组合模式的结构 198
9.1.2  组合模式的两种形式 199
9.2  举例说明 202
9.2.1  实现文件系统的文件/目录
结构 202
9.2.2  实现逻辑树 205
9.3  对组合模式的总结 208
第10章  装饰模式 211
10.1  装饰模式介绍 212
10.1.1  装饰模式的特点 212
10.1.2  装饰模式的结构 212
10.2  举例说明 216
10.2.1  奖金计算问题 216
10.2.2  蛋糕问题 224
10.3  对象组合 226
10.4  Java中的装饰模式应用 229
10.4.1  Java流接口和装饰模式的
 关系 229
10.4.2  实现英文加密存放 230
10.5  装饰模式和AOP 231
10.5.1  AOP基础 231
10.5.2  用装饰模式做出类似AOP
 的效果 233
10.6  对装饰模式的总结 236
第11章  外观模式 239
11.1  外观模式介绍 240
11.1.1  外观模式的核心思想 240
11.1.2  外观模式的结构 240
11.1.3  外观模式的意义 243
11.2  举例说明 243
11.2.1  泡茶问题 243
11.2.2  抽屉问题 246
11.2.3  理财产品问题 247
11.2.4  旅游计划问题 248
11.3  对外观模式的总结 252
第12章  享元模式 253
12.1  享元模式介绍 254
12.1.1  为什么使用享元模式 254
12.1.2  享元模式的结构 254
12.1.3  享元模式的两种形式 256
12.1.4  享元模式的应用场景 256
12.2  举例说明 258
12.2.1  咖啡问题 258
12.2.2  象棋问题 260
12.3  数据库连接池应用 263
12.4  在XML等数据源中应用 265
12.5  对享元模式的总结 267
第13章  代理模式 269
13.1  代理模式介绍 270
13.1.1  代理模式的结构 270
13.1.2  静态代理和动态代理 271
13.2  举例说明 277
13.2.1  运行的坦克问题 277
13.2.2  红酒问题 285
13.2.3  春运买票问题 286
13.2.4  媒人问题 289
13.3  剖析代理模式 291
13.3.1  普通代理 291
13.3.2  强制代理 293
13.3.3  虚拟代理 298
13.4  对代理模式的总结 298
第14章  职责链模式 299
14.1  职责链模式介绍 300
14.1.1  职责链模式的结构 300
14.1.2  两种责任链模式 302
14.2  举例说明 302
14.2.1  击鼓传花问题 302
14.2.2  学生会的申请问题 307
14.3  对责任链模式的总结 310
第15章  模板方式模式 313
15.1  模板方式介绍 314
15.1.1  模板方式的类图 314
15.1.2  三类模板方式 315
15.2  举例说明 317
15.2.1  写字板问题 317
15.2.2  闭门制造悍马车的问题 319
15.3  对模板方式模式的总结 326
第16章  解释器模式 329
16.1  解释器模式介绍 330
16.1.1  解释器模式的结构 330
16.1.2  解释器模式的实现办法 331
16.1.3  与Composite(组合模式)的
 区别 336
16.2  举例说明 336
16.2.1  四则运算问题 337
16.2.2  编译器问题 342
16.2.3  公司的任务问题 344
16.3  对解释器模式的总结 348
第17章  命令模式 351
17.1  命令模式介绍 352
17.1.1  命令模式的结构 352
17.1.2  认识命令模式 355
17.2  举例说明 356
17.2.1  开机问题 356
17.2.2  参数化配置问题 361
17.2.3  计算器问题 364
17.2.4  点菜问题 372
17.3  退化命令模式 383
17.4  对命令模式的总结 386
第18章  迭代器模式 389
18.1  迭代器模式介绍 390
18.1.1  迭代器的结构 390
18.1.2  迭代器模式的实现方式 393
18.1.3  实现自己的迭代器 395
18.2  举例说明 395
18.3  对迭代器模式的总结 397
第19章  中介者模式 399
19.1  中介者模式介绍 400
19.1.1  中介者模式的结构 400
19.1.2  MVC模型和终结者模式 401
19.2  两种中介者模式 402
19.2.1  标准的中介者模式 402
19.2.2  广义中介者 406
19.3  举例说明 410
第20章  备忘录模式 417
20.1  备忘录模式介绍 418
20.1.1  备忘录模式的结构 418
20.1.2  实现双接口 418
20.2  举例说明 419
20.2.1  “白箱”备忘录模式的
 实现 420
20.2.2  “黑箱”备忘录模式的
 实现 423
20.2.3  多重检查点 425
20.2.4  “自述历史”模式 429
20.3  对备忘录模式的总结 431
第21章  观察者模式 435
21.1  观察者模式介绍 436
21.1.1  观察者模式的结构 436
21.1.2  Java语言提供的对观察者
 模式的支持 438
21.2  Java中的DEM事件机制 443
21.3  举例说明 444
21.3.1  商品价格问题 444
21.3.2  “极品飞车”问题 445
21.3.3  “天气预报”问题 448
21.3.4  “烧水”问题 449
21.3.5  旅行问题 451
21.4  对观察者模式的总结 455
第22章  状态模式 457
22.1  状态模式介绍 458
22.1.1  状态模式的结构 458
22.1.2  状态模式的实现 460
22.2  举例说明 461
22.2.1  会员状态问题 461
22.2.2  打篮球的状态问题 462
22.2.3  投票系统问题 463
22.2.4  画图程序问题 466
22.3  对状态模式的总结 468
第23章  策略模式 471
23.1  策略模式介绍 472
23.1.1  设计原则和对象 472
23.1.2  策略模式的结构 472
23.2  策略模式的作用 474
23.2.1  一个场景 474
23.2.2  进一步认识策略模式 479
23.3  容错恢复机制 481
23.4  举例说明 483
23.4.1  “刘备回荆州”问题 483
23.4.2  “石头、剪子、布”
 问题 485
23.4.3  “发送邮件”问题 490
23.5  策略模式结合模板方式模式 493
23.6  对策略模式的总结 496
第24章  访问者模式 501
24.1  访问者模式介绍 502
24.1.1  访问者模式的结构 502
24.1.2  实现访问者模式 505
24.2  分派 508
24.2.1  静态分派 508
24.2.2  动态分派 509
24.2.3  双重分派 510
24.3  举例说明 513
24.3.1  “男人和女人”问题 514
24.3.2  公司部门问题 517
24.4  对访问者模式的总结 519
第25章  深入数据结构 521
25.1  用数组实现排序 522
25.1.1  一维数组 522
25.1.2  多维数组 522
25.1.3  使用数组实现排序 522
25.2  栈 524
25.2.1  栈中的数据 524
25.2.2  栈中的基本运算 526
25.2.3  实现栈的基本操作 526
25.2.4  邮政模拟 528
25.2.5  堆和栈的区别 530
25.3  队列 532
25.3.1  队列的基本操作 532
25.3.2  循环队列 534
25.3.3  环绕式处理 534
25.4  链表 537
25.4.1  链节点 540
25.4.2  双端链表 545
25.4.3  有序链表 547
25.4.4  双向链表 548
第26章  最优算法为最美 551
26.1  排序算法 552
26.1.1  排序算法介绍 552
26.1.2  直接选择排序 552
26.1.3  堆排序 554
26.1.4  冒泡排序 556
26.1.5  快速排序 557
26.1.6  直接插入排序 559
26.1.7  折半插入排序 560
26.1.8  希尔排序(Shell排序) 562
26.1.9  归并排序 563
26.1.10  桶式排序 565
26.1.11  基数排序 567
26.1.12  对排序算法的总结 568
26.2  贪婪算法 569
26.2.1  贪婪算法基础 569
26.2.2  解决“找零钱”问题 570
26.2.3  解决“最短路径”问题 571
26.3  分治算法 573
26.3.1  分治算法基础 573
26.3.2  “最大值和最小值”
 问题 573
26.4  动态规划算法 575
26.4.1  动态规划算法基础 576
26.4.2  解决“找零”问题 576
26.5  随机算法 578
26.5.1  随机算法基础 578
26.5.2  “随机排序”问题 579
26.6  试探算法 580
26.6.1  试探法算法基础 580
26.6.2  解决“八皇后”问题 581
26.7  递归算法 582
26.7.1  递归算法基础 583
26.7.2  解决阶乘问题 583
第27章  架构源于生活 585
27.1  软件架构基础 586
27.1.1  软件架构介绍 586
27.1.2  架构的发展源于生活 586
27.2  架构的目标 588
27.3  架构的种类 588
27.4  架构模式 589
27.4.1  架构标准 589
27.4.2  架构模式的分类 590
27.5  曾经的项目 594
27.5.1  一个Java游戏项目的
 总结 594
27.5.2  一个Java Web项目的
 总结 595
27.6  架构师和项目经理 597
27.7  架构师的成长之路 600
27.7.1  必然会有的感觉 600
27.7.2  写代码所要经历的阶段 600
27.7.3  架构师的几件法宝 602
27.7.4  对架构师的技能要求 603
参考文献 606
  
  
  

商品标签

购买记录(近期成交数量0)

还没有人购买过此商品
总计 0 个记录,共 1 页。 第一页 上一页 下一页 最末页

用户评论(共0条评论)

  • 暂时还没有任何用户评论
总计 0 个记录,共 1 页。 第一页 上一页 下一页 最末页
用户名: 匿名用户
E-mail:
评价等级:
评论内容:
验证码: captcha