标题：会当凌绝顶：Java开发修行实录
图书信息
编程·望岳  会当凌绝顶：Java开发修行实录
陈强  等编著
ISBN 978-7-121- 13001-4
2011年3月出版
定价：59.80元（含DVD光盘1张）
16开
436 页
宣传语
从基础到实践
从入门到提高
内 容 简 介
Java是目前使用最频繁的编程语言之一，它一直在开发领域中占据着重要的地位。本书循序渐进、由浅入深地介绍Java的核心技术，并通过具体实例的实现过程演练了各个知识点的具体使用流程。全书共20章，分为4篇。第1～6章是基础篇，介绍了Java语言开发所必需具备的基本知识，逐一讲解Java印象、搭建开发环境、Java基本语法、假设语句、循环语句等领域的知识；第7～12章是核心技术篇，逐一讲解了数组、面向对象、类、异常处理、I/O体系与文件处理、多线程等领域的基本知识；第13～18章是提高篇，逐一讲解了和网络接轨、AWT界面开发、Swing编程、Servlet、数据库编程等领域的知识；第19、20章是综合实战篇，分别通过记事本和打字游戏、综合供求信息系统项目的实现过程，讲解了Java语言在日常项目开发中的综合应用流程，并穿插介绍了求职和职场相处的技巧。全书采用故事性、趣味性相结合的对话讲解方式，并穿插了学习技巧和职场生存法则，引领读者全面掌握Java。
本书不但适合Java初学者，也适合有一定Java基础的读者，甚至还可以作为有一定造诣的Java程序员的参考书。
前  言
Java的重要性
Java语言自1996年正式发布以来，经历了初生、成长和壮大的阶段，现在已经成为IT领域里的主流编程语言。面向对象的Java语言具备一次编程、任何地方均可运行的能力，在需要支持多种操作系统和硬件平台的场合，Java是首选的解决方案。Java应用之所以如此广泛，要归功于它的以下特点：
（1）面向对象。Java自诞生之时就设计成面向对象的语言。在Java眼里，一切都是对象，桌子和板凳是对象，花草树木和飞禽走兽是对象，异常和错误也是对象。
（2）跨平台。对于Java程序，不管是Windows平台还是UNIX平台或其他平台，它都适用。Java编译器把Java源程序编译成与操作系统平台无关的字节码指令。只要安装了Java虚拟机，Java程序就可在任意的操作系统上运行。Java程序中的字节码指令由Java虚拟机来执行，Java虚拟机的解释器解析字节码，对它进行转换，使之能够在不同的操作系统平台上运行。
（3）直接支持分布式的网络应用。假定网络中有两台主机，分别运行着不同的Java程序，运用Java套接字技术，这两个Java程序就能顺利地进行远程通信。
（4）安全性和健壮性。Java致力于检查程序在编译和运行时的错误，Java奉行“错误发现和纠正得越早，造成的损失就越小”的原则，可谓防患于未然。Java 还支持自动内存管理，这不但减轻了程序员的许多负担，也减少了程序员犯错的机会。Java自己操纵内存减少了内存出错的可能性。
本书架构
本书分为4篇，分别是基础篇、核心技术篇、提高篇和综合实战篇，各篇内容从头开始循序渐进，和读者的成长同步。一般来说，读者学习程序的过程分为4个阶段：入门阶段、上手阶段、大悟阶段和初级程序员。为了更加直观地表述，下面用一幅图来展示学习程序的成长历程。
本书特色
本书的最大特色是用一问一答的模式穿插知识点，用故事性和趣味性的语言来讲解枯燥的编程知识。本书讲述了一个编程初学者“我”在老师KNOWALL的帮助下顺利掌握开发技术的成长历程。作者用日记的形式全程记录了学习历程，日记和生活密切相关，也和知识点相关，使读者读后有一种豁然开朗的感觉。
（1）以作者学习经历为主线
从作者开始学习讲起，一直贯穿整个学习过程。以日记的方式记录了学习过程中的点点滴滴，趣味性和知识并重，情节引人入胜。
（2）实例典型，并有丰富的技巧提示
书中遵循了理论加实践的写作模式，知识点讲解完毕后，都会用一个具体实例来演练知识点的用法。所有的实例都具有代表性。
（3）语言通俗易懂
以最通俗的语言来实现，以大话的方式将知识展现给读者。让读者仿佛是在看一个故事，而不是在学习深奥的语言知识。
（4）用问题串联知识点
为了满足读者的成就感，书中提出了大量测试和问题，通过这些测试和问题将各个知识点串联起来。这样能让读者在问题中学会知识点的运用，一举两得。
（5）提出问题到解决问题，问题一环扣一环
第1步：每章的开始，我们将提出一个能涵盖本章知识的问题。
第2步：详细讲解需要解决这些问题的基本知识。
第3步：解决这个问题。
（6）超值DVD光盘（PPT素材、视频和全书案例源码等）
本书配套光盘中包含：①实例源代码：包括了书中全部实例的完整源代码。②开发技术视频教学课堂：结合全书技术体系，以视频教学方式讲解了书中涉及的所有知识点。③实例视频教学课堂：以视频教学的方式全面讲解了书中每个实例的的具体实现过程。④精美的PPT教案：结合全书内容体系，为教学工作者提供了精心制作的PPT教案。⑤超值大赠送：免费赠送给读者5个综合案例的完整源码和实例教学视频。  
本书内容
第1～6章是基础篇，介绍了Java语言开发所必须具备的基本知识，逐一讲解Java印象、搭建开发环境、Java基本语法、假设语句、循环语句等领域的知识，并采用理论结合实例的方式对各个知识点进行了剖析。
第1章  Java之印象
第2章  Java宝剑出鞘
第3章  三种武器
第4章  Java的三驾马车
第5章  Java里的假设
第6章  如人生的循环语句
第7～12章是核心技术篇，逐一讲解了数组、面向对象、类、异常处理、I/O体系与文件处理、多线程等领域的基本知识，并采用理论结合实例的方式对各个知识点进行了剖析。
第7章  数组是心灵的港湾
第8章 看Java如何面向对象
第9章  类，我轻轻地来了
第10章  异常也疯狂
第11章 I/O体系与文件处理，给你带来额外的收获
第12章  帮你多干活的多线程
第13～18章是提高篇，逐一讲解了和网络接轨、AWT界面开发、Swing编程、Servlet、数据库编程等领域的知识，并采用理论结合实例的方式对各个知识点进行剖析。
第13章  和网络接轨
第14章  欢迎来到AWT的奇幻世界
第15章  Swing更加绚丽
第16章  Servlet很神奇
第17章  轻松玩转数据库
第18章  数据库编程是最重要的形式
第19、20章是综合实战篇，分别通过记事本和打字游戏、综合供求信息系统项目的实现过程，讲解了Java语言在日常项目开发中的综合应用流程，并穿插介绍了求职和职场相处的技巧。
第19章  记事本和打字游戏的编写
第20章  综合供求信息系统
读者对象
本书的读者对象如下：
初中级程序开发人员。
程序测试及维护人员。
大中专院校及相关培训机构的师生。
初学编程的自学者和编程爱好者。
致谢
本书由陈强编写，参与本书编写工作的还有薛小龙、管西京、李佐彬、王梦、王书鹏、张子言、张建敏、陈德春、李藏、关立勋、秦雪薇、蒋凯、王东华、罗红仙。由于时间仓促，加之作者水平有限，有些错误在所难免。读者如有错误或问题之处，我们会尽快更正或给予答复。
编者     
目  录
第1篇  基础篇
第1章  Java之印象 1
1.1  引出问题 1
1.2  Java为何物 2
1.2.1  探寻Java的起源 2
1.2.2  看Java的特点 2
1.3  我们需要准备什么 3
1.4  开始体会Java程序之旅 7
1.4.1  一个简单的Java程序 8
1.4.2  编译和运行Java文件 9
1.5  解决问题——谈Java的江湖地位 10
1.6  我的总结 11
第2章  Java宝剑出鞘 12
2.1  引出问题 12
2.2  Java工具简介 13
2.2.1  先看最流行的Eclipse 13
2.2.2  再看NetBeans 13
2.2.3  接着看JBuilder 14
2.3  开始步入Eclipse世界 15
2.3.1  获得并安装Eclipse 15
2.3.2  玩转Eclipse 16
2.4  使用NetBeans 18
2.4.1  获取NetBeans 19
2.4.2  装备NetBeans 20
2.4.3  玩转NetBeans 21
2.5  解决问题——探寻学习Java的捷径 23
2.6  我的总结 24
第3章  三种武器 25
3.1  引出问题 25
3.2  什么是量 26
3.2.1  永远都不变的常数 26
3.2.2  为变而生的量 27
3.3  数据类型 31
3.3.1  数据类型的范围 32
3.3.2  字符型 32
3.3.3  整型 34
3.3.4  浮点型 35
3.3.5  布尔型 35
3.4  标识符和关键字是一种身份 36
3.5  解决问题 37
3.6  我的总结 37
第4章  Java的三驾马车 38
4.1  引出问题 38
4.2  笑看Java运算符 39
4.2.1  算术运算符 39
4.2.2  关系运算符和逻辑运算符 40
4.2.3  位运算符 43
4.2.4  条件运算符 43
4.2.5  赋值运算符 44
4.3  表达式想对你说 45
4.3.1  表达式为何物 45
4.3.2  表达式的优先级 45
4.3.3  表达式的应用 46
4.4  字符串 47
4.4.1  字符串的初始化 48
4.4.2  String类 48
4.4.3  StringBuffer类 53
4.5  解决问题 55
4.6  我的总结 56
第5章  Java里的假设 57
5.1  引出问题 57
5.2  让if来选择你 58
5.2.1  if控制语句 58
5.2.2  if语句的延伸 59
5.2.3  多个条件判断的if语句 60
5.3  有多个选择的switch 60
5.3.1  switch语句的形式 60
5.3.2  无break的switch语句 61
5.3.3  case没有执行语句的情况 62
5.3.4  default可以不在末尾 64
5.4  进一步分析条件语句 64
5.4.1  正确使用switch语句 65
5.4.2  正确使用if语句 66
5.4.3  有秩序的switch 67
5.5  解决问题 68
5.6  我的总结 69
第6章  如人生的循环语句 70
6.1  引出问题 70
6.2  有多少语句可以循环 71
6.2.1  简易for循环 71
6.2.2  唠唠叨叨的while循环 75
6.2.3  do-while循环语句 76
6.3  跳转功能的实现 79
6.3.1  break（终止） 79
6.3.2  return（返回） 84
6.3.3  continue（继续） 84
6.3.4  随心所欲地使用跳转语句之总结 86
6.4  解决问题 87
6.5  我的总结 88 
第2篇  核心技术篇
第7章  数组是心灵的港湾 89
7.1  引出问题 89
7.2  简单的一维数组 90
7.2.1  声明一维数组 90
7.2.2  创建一维数组 90
7.2.3  轻松初始化一维数组 93
7.3  复杂点的二维数组 94
7.3.1  声明二维数组 94
7.3.2  二维数组的创建 95
7.3.3  二维数组的初始化 96
7.4  更复杂的多维数组 98
7.4.1  声明三维数组 98
7.4.2  创建三维数组 98
7.4.3  初始化三维数组 98
7.5  对数组的操作 99
7.5.1  复制数组 100
7.5.2  比较数组 100
7.5.3  搜索数组中的元素 101
7.5.4  排序数组 102
7.5.5  填充数组 103
7.6  解决问题 105
7.7  我的总结 106
第8章  看Java如何面向对象 107
8.1  引出问题 107
8.2  面向对象是什么 108
8.2.1  理解面向对象的理念 108
8.2.2  面向对象的特点 109
8.3  类是面向对象的第一特征 109
8.3.1  如何编写一个类 110
8.3.2  特殊的方法——构造方法 110
8.3.3  一般的方法 111
8.4  属性和方法的修饰符 112
8.4.1  公有的public 113
8.4.2  私有的private 113
8.4.3  用protected来保护你 114
8.4.4  其他修饰符 115
8.5  用this来指定你 116
8.6  演练类和对象 118
8.6.1  创建和使用对象 118
8.6.2  使用静态变量和静态方法 118
8.7  特殊的类——抽象类 119
8.7.1  创建抽象类 120
8.7.2  抽象类的规则 121
8.8  Java包不是钱包 123
8.8.1  定义包 123
8.8.2  在Eclipse里定义包 124
8.8.3  在程序里插入包 125
8.9  解决问题 127
8.10  我的总结 129
第9章  类，我轻轻的来了 130
9.1  引出问题 130
9.2  类的继承 131
9.2.1  父与子 131
9.2.2  调用父类的构造方法 132
9.2.3  可以随时访问父类的属性和方法 134
9.2.4  复杂的继承关系 137
9.3  重载与重写 139
9.3.1  再写一遍 139
9.3.2  再处理一遍 140
9.3.3  当重写与重载相逢 143
9.4  类的同胞——接口 144
9.4.1  定义接口 145
9.4.2  接口的量和方法 146
9.4.3  实现接口 149
9.4.4  引用接口 151
9.5  解决问题 153
9.6  我的总结 156
第10章  异常也疯狂 157
10.1  引出问题 157
10.2  什么是异常 158
10.2.1  首次结识异常 158
10.2.2  一些异常处理类 159
10.3  知错就改的异常处理方式 160
10.3.1  使用try…catch处理异常 160
10.3.2  处理多个异常 161
10.3.3  将finally关键字使用在异常中 162
10.4  异常处理的含蓄方式——抛出 163
10.4.1  使用throws将异常抛出 163
10.4.2  使用throw将异常抛出 165
10.5  自己来处理异常 166
10.6  异常处理的陋习 168
10.6.1  异常丢弃 169
10.6.2  不指定具体的异常 170
10.6.3  占着坑不用 171
10.6.4  不说明异常的详细信息 171
10.6.5  庞大的try块 172
10.6.6  输出数据的不完整 172
10.7  解决问题——勇敢地面对错误 173
10.8  我的总结 174
第11章  I/O体系与文件处理给你带来额外的收获 175
11.1  引出问题 175
11.2  Java I/O简介 176
11.3  黄河流 176
11.3.1  字节流 177
11.3.2  字符流 179
11.4  加快I/O操作效率 181
11.4.1  缓冲字节流 182
11.4.2  缓冲字符流 183
11.5  文件处理 185
11.5.1  文件类 185
11.5.2  使用文件类处理文件 186
11.6  解决问题 188
11.7  我的总结 189
第12章  帮你多干活的多线程 190
12.1  引出问题 190
12.2  线程基础 191
12.2.1  线程与进程的理解 191
12.2.2  理解多线程 191
12.3  创建线程 192
12.3.1  创建主线程 192
12.3.2  通过Runnable接口创建线程 193
12.3.3  通过Thread类创建线程 195
12.4  创建多线程 196
12.5  线程的优先级 198
12.6  随心所欲地控制线程 201
12.6.1  让当前的线程等待 201
12.6.2  让当前线程进入睡眠状态 205
12.6.3  让当前线程做出让步 208
12.7  多线程同步 209
12.7.1  线程同步的重要性 210
12.7.2  轻松实现同步 211
12.7.3  什么是死锁 213
12.8  线程之间的交互 214
12.9  解决问题 215
12.10  我的总结 217 
第3篇  提高篇
第13章  和网络接轨 219
13.1  引出问题 219
13.2  一个服务器端程序 220
13.3  什么是网络通信 224
13.3.1  TCP和IP概述 224
13.3.2  使用URL进行网络链接 225
13.3.3  编写URL程序常用的方法 226
13.4  和网络编程一起笑看风云 227
13.4.1  创建socket 228
13.4.2  有多个客户端连接的情况 230
13.5  解决问题——互联网给
13.5  我们的学习带来了什么 231
13.6  我的总结 232
第14章  AWT的奇幻世界 233
14.1  引出问题 233
14.2  什么是AWT 234
14.3  创建窗口 235
14.4  创建窗口组件 235
14.5  布局利器 237
14.5.1  布局武器FlowLayout 237
14.5.2  布局武器BorderLayout 239
14.5.3  布局利器GridLayout 240
14.5.4  布局利器CardLayout 242
14.5.5  布局利器Null 242
14.6  编写监听接口 244
14.6.1  窗口监听的接口 245
14.6.2  按钮监听的接口 246
14.6.3  文本框监听的接口 247
14.7  解决问题 249
14.8  我的总结 252
第15章  Swing更加绚丽 253
15.1  引出问题 253
15.2  Swing创建窗口 253
15.2.1  JFrame简介和方法 254
15.2.2  创建第一个Swing窗口 254
15.3  Icon接口 256
15.4  添加组件 259
15.4.1  弹出式菜单 259
15.4.2  文本框 262
15.4.3  菜单 266
15.4.4  单选按钮 267
15.4.5  复选框按钮 270
15.4.6  列表框 271
15.4.7  选项卡 273
15.4.8  文本域 274
15.4.9  按钮 276
15.4.10  进度条 277
15.5  常用的布局管理器 278
15.5.1  当不使用布局管理器时 278
15.5.2  体会边界布局管理器 279
15.5.3  体会网格布局管理器 280
15.6  解决问题 281
15.7  我的总结 283
第16章  Servlet很神奇 284
16.1  引出问题 284
16.2  什么是Servlet 284
16.2.1  Servlet技术简述 284
16.2.2  Servlet技术特性 285
16.2.3  Servlet的生命周期 286
16.3  如何开发一个简单的Servlet 286
16.3.1  开发一个简单的Servlet 286
16.3.2  编译并发布Servlet 287
16.4  Servlet的常用接口和类 290
16.4.1  与Servlet配置相关的接口 290
16.4.2  Servlet编程接口 291
16.4.3  HTTPServlet类 293
16.4.4  请求与响应 296
16.4.5  会话 296
16.4.6  Servlet上下文 299
16.4.7  Servlet监听 300
16.5  Servlet过滤器 301
16.5.1  过滤器的简介 301
16.5.2  过滤器的应用 302
16.5.3  Servlet过滤器的配置 303
16.5.4  Servlet过滤器的实例 303
16.6  将请求进行封装 305
16.6.1  doGet 305
16.6.2  doPost 307
16.7  解决问题 309
16.8  我的总结 311
第17章  轻松玩转数据库 313
17.1  引出问题 313
17.2  数据库的类别 313
17.3  安装MySQL 314
17.4  MySQL的管理工具 317
17.4.1  创建数据库 318
17.4.2  创建表 318
17.4.3  输入记录 318
17.5  SQL Server很简单 319
17.5.1  创建数据库 320
17.5.2  创建表 321
17.5.3  创建记录 323
17.6  解决问题 323
17.7  我的总结 326
第18章  数据库编程是最重要的形式 327
18.1  引出问题 327
18.2  JDBC是一座桥 327
18.2.1  JDBC API 328
18.2.2  JDBC驱动类型 328
18.3  数据库的连接 329
18.3.1  轻松连接MySQL 330
18.3.2  轻松连接
18.3.2  SQL Server 2000 333
18.4  SQL语句才是核心 337
18.4.1  新建数据库表 337
18.4.2  数据库查询语句 338
18.4.3  数据库操作语句 339
18.5  解决问题 342
18.6  我的总结 343 
第4篇  综合实战篇
第19章  简单的记事本 345
19.1  老师的作业 345
19.2  Java API手册 345
19.2.1  什么是Java API 345
19.2.2  如何获得Java API手册 346
19.2.3  使用Java API手册 347
19.3  记事本的编写 348
19.3.1  插入包 348
19.3.2  新建文件和打开文件 348
19.3.3  保存文件 349
19.3.4  文件操作 350
19.3.5  字体的处理 351
19.3.6  状态栏和帮助功能 353
19.3.7  将功能实例化 355
19.4  打字游戏的编写 358
19.4.1  需要插入的包 358
19.4.2  设计版式 358
19.4.3  声音的处理 359
19.4.4  游戏过关的设计 360
19.4.5  文字的下移 362
19.5  计算器的编写 365
19.5.1  计算器的最终结果 365
19.5.2  计算器组件的编写 365
19.5.3  计算器的按钮事件 368
19.6  系统调试 372
第20章  综合供求信息系统 374
20.1  求职路上 374
20.2  系统需求 376
20.2.1  开发背景 376
20.2.2  需求分析 377
20.3  网站功能结构 377
20.4  规划流程 378
20.5  搭建数据库 378
20.5.1  数据库需求分析 378
20.5.2  数据库概念设计 379
20.5.3  数据库逻辑结构设计 380
20.6  设计公共类 381
20.6.1  数据库连接及操作类 381
20.6.2  业务处理类 383
20.6.3  分页类 387
20.6.4  字符串处理类 389
20.7  开始编码 389
20.7.1  设计前台页面 390
20.7.2  前台信息显示设计 390
20.7.3  信息发布模块设计 402
20.8  后期的编码工作 406
20.8.1  登录模块 406
20.8.2  后台页面模块 409
20.8.3  后台信息管理模块 410
20.9  测试 420
20.10  我的总结 421