新書推薦:
《
纷纭万端 : 近代中国的思想与社会
》
售價:NT$
500.0
《
中国古代文体形态研究(第四版)(中华当代学术著作辑要)
》
售價:NT$
765.0
《
朋党之争与北宋政治·大学问
》
售價:NT$
454.0
《
甲骨文丛书·波斯的中古时代(1040-1797年)
》
售價:NT$
403.0
《
以爱为名的支配
》
售價:NT$
286.0
《
台风天(大吴作品,每一种生活都有被看见的意义)
》
售價:NT$
245.0
《
打好你手里的牌(斯多葛主义+现代认知疗法,提升当代人的心理韧性!)
》
售價:NT$
301.0
《
新时代硬道理 广东寻路高质量发展
》
售價:NT$
352.0
|
編輯推薦: |
资深软件工程师20多年教学与开发经验结晶,通过500多个简单易懂、可运行的完整实例,帮助读者理解Java编程的逻辑、概念及实操
|
內容簡介: |
《Java高手是怎样炼成的:原理、方法与实践》是作者20多年工作经验的结晶。内容由浅入深,循序渐进,通过500多个简单易懂、可运行的完整实例,帮助读者理解Java编程的逻辑、概念及实操。本书内容丰富,讲解接地气,从理论到实践,从基础到高级,帮助读者建立学习信心,在实践中学会Java编程。 《Java高手是怎样炼成的:原理、方法与实践》分五部分,共23章。*部分(第1~5章)主要介绍Java基本语法,包括Java语言概述和发展、编程和开发环境及设置等。第二部分(第6~9章)通过生动实例介绍类、对象、继承、多态、内部类以及接口等Java编程概念和技术。第三部分(第10~15章)走进数组和字符串,深入讲解它们的应用、异常处理,并深入讨论更多面向对象技术。第四部分(第16~20章)介绍20多种GUI组件、字体、颜色、图像以及音频编程。第五部分(第21~23章)详细讲解数据流、文件IO、数据库编程以及网络编程等。 《Java高手是怎样炼成的:原理、方法与实践》专为不同层次的Java程序员精心编写,既适合编程初学者入门,又适合程序员进阶,还可以作为高等院校讲授面向对象程序设计语言以及Java语言的参考教材。
|
關於作者: |
高永强,博士,现任美国加利福尼亚州奥龙尼学院计算机系终身教授,并受聘为国内外多所大学的客座教授。从事国内外计算机教学以及软件开发和咨询20多年,专长于计算机语言、计算机管理信息系统,以及计算机应用和培训。出版著作《微型计算机应用用户指南》《全C编程》和《Java编程艺术》。
卢晨,苏州大学计算机科学与技术学院研究生毕业,苏州工业园区服务外包职业学院副教授。拥有十余年一线软件开发教学经验,教授Java程序设计、Android开发等课程,主持和参与多个移动应用系统、网站系统开发项目,主编和参编《Java实践教程》《Android高级应用开发案例教程》等。
|
目錄:
|
第一部分 新手上路
第1章 初识Java 2
1.1 什么是Java 2
1.2 Java能做什么 3
1.3 Java软件包 3
1.3.1 什么是Java SE 3
1.3.2 什么是JDK 4
1.4 为什么Java可以在任何计算机上运行 4
1.5 Java和其他语言比较 4
1.5.1 Java和C的比较 5
1.5.2 Java和C#的比较 5
1.6 为什么学Java 5
1.6.1 新手常遇到的困难 5
1.6.2 为什么选择这本书 6
1.7 免费下载、安装和测试学习Java需要的软件 6
1.7.1 免费下载JDK软件包 7
1.7.2 JDK的安装步骤 7
1.7.3 安装成功我知道 8
1.8 新手使用Java开发工具Eclipse 10
1.8.1 什么是IDE10
1.8.2 为什么用Eclipse 10
1.8.3 免费下载、安装和测试Eclipse 11
1.8.4 新手须知Eclipse常用功能 14
1.9 编写和运行第一个Java程序 17
1.10 什么是Java API 19
巩固提高练习和编程实践 19
第2章 开始Java编程 20
2.1 一切从基础开始 20
2.1.1 Java语句 20
2.1.2 注释,还是注释 21
2.1.3 什么是标识符和怎样使用 22
2.2 Java基本数据 23
2.2.1 8种基本数据类型 23
2.2.2 如何定义变量 24
2.2.3 什么是变量初始化 25
2.2.4 变量与存储器有什么关系 26
2.2.5 常量必须初始化 27
2.3 赋值语句 27
2.3.1 算术表达式 27
2.3.2 快捷赋值操作符 29
2.4 初识字符串 30
2.4.1 菜鸟理解字符串 30
2.4.2 什么是字符串引用 31
2.4.3 如何实现字符串连接 31
2.4.4 如何处理特殊字符转义符 33
2.5 初识数组 34
2.5.1 菜鸟理解数组 34
2.5.2 一个例子教会你使用数组 34
巩固提高练习和编程实践 35
第3章 新手须知类和对象 37
3.1 初识类和对象 37
3.1.1 类到底是什么 37
3.1.2 对象又是什么 38
3.1.3 编写你的第一个类 38
3.1.4 创建你的第一个对象 40
3.1.5 怎样调用方法 41
3.1.6 怎样测试自己编写的类 41
3.1.7 站在巨人的肩膀使用API类 43
3.1.8 给程序带来五彩缤纷细说JOptionPane 45
3.2 学习更多输入、输出API类 48
3.2.1 回到黑白System.out 49
3.2.2 扫描输入Scanner 50
3.3 编写用户友好与人机互动程序 52
实战项目:里程转换应用开发 53
巩固提高练习和实战项目大练兵 55
第4章 走进控制语句 57
4.1 条件表达式 57
4.1.1 关系表达式 57
4.1.2 比较基本型数据 58
4.1.3 比较字符串 59
4.2 逻辑表达式和应用 61
4.2.1 逻辑表 61
4.2.2 复合表达式及运算次序 61
4.2.3 你的程序逻辑清楚吗 62
4.3 简单if语句 63
4.4 简单if-else语句 65
4.5 嵌套if-else语句 67
4.5.1 用多种格式编写 67
4.5.2 应用实例 68
4.6 条件运算符?: 69
4.7 多项选择switch语句 69
4.7.1 典型switch语句格式 69
4.7.2 应用实例 71
4.7.3 JDK14新增的switch-case语句及其应用 72
4.8 你的程序需要继续运行吗循环语句 72
4.8.1 走进while循环 72
4.8.2 走进do-while循环 75
4.8.3 走进for循环77
4.8.4 走进嵌套循环 79
4.9 更多控制语句 81
4.9.1 break语句 81
4.9.2 continue语句 82
实战项目:投资回报应用开发(1) 83
巩固提高练习和实战项目大练兵 86
第5章 数据控制和质量保证初探 89
5.1 垃圾进、垃圾出誓将错误消灭在开始 89
5.2 Java的异常处理 90
5.2.1 系统自动抛出的异常 90
5.2.2 初识try-catch 90
5.2.3 API标准异常类 92
5.2.4 怎样处理系统自动抛出的异常 92
5.2.5 为什么需要抛出和处理异常 93
5.2.6 异常处理应用实例 95
5.3 格式化输出控制 98
5.3.1 货币输出格式化 98
5.3.2 国际货币输出格式化 99
5.3.3 百分比输出格式化 100
5.3.4 其他数值输出格式化 101
5.3.5 利用DecimalFormat控制数值输出格式化 102
5.4 数据类型转换 102
5.4.1 自动类型转换 103
5.4.2 强制性类型转换cast 103
5.5 怎样利用Math类 104
5.6 处理超值数字BigDecimal类 105
5.6.1 BigDecimal的数学运算 106
5.6.2 BigDecimal的格式化输出 107
实战项目:投资回报应用开发(2) 108
巩固提高练习和实战项目大练兵 110
第二部分 告别菜鸟
第6章 走进类和对象 114
6.1 面向对象编程原来如此 114
6.1.1 类和对象剖析源于生活,高于生活 115
6.1.2 封装性 115
6.1.3 继承性 116
6.1.4 多态性 117
6.1.5 抽象性 117
6.2 类为什么是编程模块 117
6.2.1 类就是软件工厂产品蓝图 117
6.2.2 如何描述对象确定其属性并赋值 118
6.2.3 构造方法制造对象 119
6.2.4 更灵活地制造对象构造方法重载 121
6.3 走进方法 122
6.3.1 方法就是对象的具体操作 122
6.3.2 什么是传递值的参数和传递引用的参数 123
6.3.3 方法重载 125
6.3.4 this是什么意思 126
6.4 走进静态数据 129
6.4.1 属于全体对象的数据就是静态数据 129
6.4.2 静态数据是怎样工作的 130
6.4.3 应用静态数据原则 130
6.5 走进静态方法 131
6.5.1 有静态数据就有静态方法此话有理 131
6.5.2 静态方法怎样工作不同于一般方法 132
6.5.3 为什么要用静态初始化程序块 133
6.6 我们喜欢再谈对象 134
6.6.1 对象创建与对象引用 134
6.6.2 为什么对象名重用 135
6.6.3 方法链式调用就这么简单 136
实战项目:投资回报应用开发(3) 136
巩固提高练习和实战项目大练兵 138
第7章 继承 140
7.1 继承就是吃现成饭 140
7.1.1 怎样实现继承归类分析 141
7.1.2 怎样确定继承是否合理 是和有关系 142
7.1.3 怎样体现代码重用 142
7.1.4 继承就是站在巨人肩膀上 143
7.1.5 继承好处多多,你都想到了吗 143
7.1.6 继承的局限性 143
7.1.7 三种基本继承类型 143
7.2 实现继承 145
7.2.1 怎样写父类 145
7.2.2 怎样写子类 146
7.2.3 Like father like son像爸爸就是儿子 147
7.3 你想让子类怎样继承访问修饰符再探 148
7.4 更多继承应用 149
7.4.1 继承中如何应用重载 149
7.4.2 一个实例教会你什么是覆盖 150
7.4.3 一个实例教会你什么是屏蔽 151
7.4.4 细谈万类鼻祖Object和类中类Class 152
7.5 抽象类 156
7.5.1 抽象类不能创建对象 156
7.5.2 抽象方法造就了抽象类 156
7.6 最终类 158
7.6.1 最终类不能被继承 158
7.6.2 一个例子搞懂最终类 159
7.6.3 最终方法不能被覆盖 159
7.6.4 最终参数的值不能改变 159
7.6.5 所有这一切皆为提高执行速度 159
实战项目:几何体面积和体积计算应用开发(1) 160
巩固提高练习和实战项目大练兵 163
第8章 多态 165
8.1 我们每天都在用多态 165
8.1.1 多态问题你注意到了吗 165
8.1.2 让我们一起走进多态 166
8.2 实现多态 168
8.2.1 父类提供多态方法和接口 168
8.2.2 子类覆盖多态方法或完善接口 169
8.2.3 一个例子让你明白应用多态 170
8.3 为什么剖析方法绑定 171
8.3.1 静态绑定 171
8.3.2 动态绑定 171
8.3.3 绑定时如何处理方法调用 171
8.4 高手特餐invokespecial和invokevirtual 172
实战项目:几何体面积和体积计算应用开发(2) 173
巩固提高练习和实战项目大练兵 175
第9章 接口 177
9.1 接口就是没有完成的类 177
9.1.1 接口只规定命名如何完善由你 177
9.1.2 接口体现最高形式的抽象 178
9.1.3 怎样编写接口 179
9.1.4 用接口还是用抽象类 180
9.1.5 常用API接口 181
9.2 实现接口 181
9.2.1 实现接口就是完善接口中的方法 181
9.2.2 利用接口可以实现多重继承 183
9.2.3 接口本身也可以继承 186
9.2.4 接口也可以作为参数 187
9.3 应用接口的典型实例Cloneable接口 188
9.3.1 实现Cloneable接口 188
9.3.2 引用还是复制看看这个例子就懂了 189
9.3.3 复制还分深浅怎么回事 189
9.3.4 应用实例利用最高超类实现Cloneable接口 192
巩固提高练习和实战项目大练兵 193
第三部分 Java提高
第10章 细谈数组 196
10.1 为啥数组就是类 196
10.1.1 理解数组是怎样工作的 196
10.1.2 创建数组就是创建数组对象 197
10.1.3 揭开数组的内幕 198
10.2 数组的操作 201
10.2.1 访问数组成员 201
10.2.2 数组和循环总是闺蜜 203
10.2.3 访问数组成员的特殊循环 203
10.2.4 用更多实例掌握数组的应用 204
10.3 高手要掌握的更多数组技术 205
10.3.1 多维数组 206
10.3.2 非规则多维数组 208
10.3.3 怎样把数组传到方法 208
10.3.4 怎样在方法中返回数组 210
10.4 API的Arrays类可以做些什么 211
10.4.1 常用方法 211
10.4.2 排序和搜索 212
10.4.3 数组复制避免菜鸟常犯的错误 213
10.4.4 高手必须掌握的另一个API接口Comparable 215
实战项目:在多级继承中应用数组进行排序 216
巩固提高练习和实战项目大练兵 218
第11章 为何要再谈字符串 220
11.1 为何字符串也是类 220
11.1.1 什么是字符串引用 220
11.1.2 什么是字符串创建 221
11.1.3 字符串构造方法 221
11.1.4 高手必须掌握的字符串方法 222
11.2 API StringBuilder类 225
11.2.1 字符串内容可变还是不可变 225
11.2.2 StringBuilder的构造方法 225
11.2.3 高手必须掌握的其他常用方法 226
11.2.4 用实例学会StringBuilder应该很容易 227
11.2.5 StringBuilder的大哥StringBuffer类229
11.3 API StringTokenizer类分解字符串229
11.3.1 token就是分解字符串的符号 229
11.3.2 构造方法和其他常用方法 230
11.3.3 用实例学会StringTokenizer 231
11.4 正则表达式 231
11.4.1 高手必须知道的正则表达式 231
11.4.2 正则表达式规则 232
11.4.3 不再是秘密String中处理正则表达式的方法 234
11.4.4 揭开Pattern和Matcher类的面纱 234
11.4.5 验证身份不是难事实例说明一切 236
实战项目:计算器模拟应用开发(1) 237
巩固提高练习和实战项目大练兵 239
第12章 揭秘异常处理 241
12.1 高手必须懂的API异常处理类 241
12.2 非检查性异常 242
12.2.1 出错第一现场在哪里 242
12.2.2 高手为什么要处理非检查性异常 242
12.3 检查性异常 243
12.3.1 同样要分析出错第一现场 243
12.3.2 处理常见检查性异常必须 243
12.4 高手掌握异常处理机制 243
12.4.1 传统机制 244
12.4.2 高手为何要知道异常是怎样在程序中传播的 246
12.4.3 怎样获取更多异常信息 247
12.4.4 用实例解释最直观易懂 248
12.5 高手应用throw直接抛出异常 250
12.5.1 JVM怎样自动抛出异常 251
12.5.2 你也可以直接抛出异常 251
12.5.3 你还可以重抛异常 252
12.6 嵌套异常处理 253
12.6.1 什么是异常机制嵌套方式 253
12.6.2 嵌套异常是怎样传播的 254
12.6.3 为什么讨论嵌套异常重抛 255
12.7 高手自己定义异常类 256
12.7.1 编写自定义异常类原来如此简单 256
12.7.2 高手掌握的自定义异常处理技巧 257
12.7.3 用实例解释最直接易懂 258
12.8 异常链是什么 259
12.8.1 异常处理信息不见了什么情况 259
12.8.2 应用异常链保证不会丢失处理信息 259
12.9 断言高手可以断言可能发生的错误assert 261
12.9.1 如何编写断言 261
12.9.2 开启和关闭断言 262
实战项目:利用异常处理机制开发你的数据验证类 263
巩固提高练习和实战项目大练兵 265
第13章 高手掌握更多OOP技术 266
13.1 创建自己的API包 266
13.1.1 包有哪些命名规范 267
13.1.2 创建包文件 267
13.1.3 引入包文件 268
13.2 用Eclipse的包管理项目中的文件 269
13.3 在Eclipse中创建文件库 270
13.3.1 什么是JAR文件 270
13.3.2 创建文件库 270
13.4 揭秘访问权 271
13.5 类的更多应用你知多少 273
13.5.1 类之间的关系父子、部下还是亲戚 273
13.5.2 什么是文件类 274
13.5.3 内部类怎样用 274
13.5.4 为什么用静态内部类 276
13.5.5 本地类是什么 278
13.5.6 没有名字的类匿名类 279
13.5.7 这么多类高手攻略 279
13.6 枚举类是什么 280
13.6.1 怎样定义和使用枚举 280
13.6.2 静态引入编写枚举类更方便 282
13.6.3 高手必须知道的枚举 283
13.6.4 一个实例教会你应用枚举 285
13.7 高手须知可变参数 286
13.7.1 可变参数是重载的极致应用 286
13.7.2 揭秘可变参数它怎样工作 287
13.7.3 可变参数方法可以重载 288
13.8 什么是javadoc和怎样用它 288
实战项目:创建可被任何程序调用的文件库(JDK9和以后版本) 290
巩固提高练习和实战项目大练兵 292
第14章 高手须知集合类 293
14.1 用集合类做些什么 293
14.1.1 集合类与数组的比较 294
14.1.2 集合类都有哪些 294
14.1.3 什么是Java的泛类型 296
14.1.4 高手怎样应用泛类型 301
14.1.5 值得注意的类型安全问题 303
14.2 揭秘集合类 304
14.2.1 可改变大小的数组 304
14.2.2 链接表 306
14.2.3 哈希集合 307
14.2.4 元素迭代器 308
14.2.5 用实例教会你集合类应用 309
14.3 Map的集合类 311
14.3.1 怎样使用HashMap 311
14.3.2 怎样使用TreeMap 312
14.3.3 怎样对自定义类型TreeMap排序 314
14.4 集合类和数据结构 315
14.4.1 堆栈 315
14.4.2 队列 315
14.4.3 细说集合中的排序 316
14.4.4 搜索我要找到你 318
14.4.5 洗牌想玩斗地主 319
14.4.6 集合类应用总结 320
14.4.7 高手理解集合类的同步与不同步 321
实战项目:利用HashMap开发产品管理应用 321
巩固提高练习和实战项目大练兵 323
第15章 多线程 325
15.1 Java的本质是多线程 325
15.1.1 揭秘多线程怎样工作 325
15.1.2 多任务和多处理是一回事吗 326
15.1.3 多线程应用范围太广泛了 326
15.1.4 一张图搞懂线程的5种状态 327
15.1.5 你的第一个多线程程序 327
15.2 如何创建多线程 329
15.2.1 可以继承Thread创建线程 329
15.2.2 可以完善Runnable接口来创建线程 330
15.2.3 多线程典型案例:生产-消费线程初探331
15.3 多线程控制 333
15.3.1 设置优先级setPriority方法 333
15.3.2 给其他线程让步yield方法 334
15.3.3 让我的线程休息sleep方法 334
15.3.4 让我的线程加入执行join方法 336
15.3.5 打断我的线程运行interrupt方法 336
15.3.6 应用实例线程和数组哪个运行的快 337
15.4 高手必知多线程协调 339
15.4.1 什么是多线程协调 339
15.4.2 高手怎样实现多线程协调 340
15.4.3 什么是易变数据volatile 340
15.4.4 你的多线程协调吗synchronized 340
15.4.5 要协调必须等待wait方法 342
15.4.6 你的线程协调得到通知了吗notify或notifyAll 343
15.5 高手须知更多多线程 344
15.5.1 一张图看懂监视器和线程锁定 344
15.5.2 更多多线程实战术语和编程技巧 345
15.5.3 并行类包java.util. concurrent 346
实战项目:利用多线程和并行处理开发生产-消费应用 349
巩固提高练习和实战项目大练兵 352
第四部分 GUI和多媒体编程
第16章 GUI使你的窗口出彩 356
16.1 从一个典型例子看懂GUI组件 356
16.1.1 Swing包中的组件从哪里来 357
16.1.2 一张图看懂组件的继承关系 357
16.1.3 组件操作功能从Component继承而来 358
16.2 创建框架就是实例窗口 358
16.2.1 怎样显示创建的窗口 358
16.2.2 怎样关闭显示的窗口 359
16.2.3 窗口位置和大小控制 360
16.2.4 在屏幕中央显示窗口实例 361
16.3 用控制面板管理组件JPanel 362
16.3.1 一个例子搞懂控制面板怎样管理组件 362
16.3.2 手把手教会你组件编程步骤 362
16.3.3 揭秘控制面板结构内幕 363
16.4 怎样创建按钮JButton 364
16.4.1 创建按钮举例 364
16.4.2 把组件显示到默认位置FlowLayout 366
16.4.3 按下按钮要做什么按钮事件处理 367
16.5 标签和文本字段是闺蜜 368
16.5.1 怎样编写标签JLabel368
16.5.2 怎样编写文本字段 JTextField 369
16.5.3 怎样处理文本字段事件 370
16.5.4 我想让用户输入密码JPasswordField 372
16.5.5 应用实例学会这些组件编程 372
16.6 文本窗口的创建和应用JTextArea 374
16.6.1 文本窗口的创建和方法调用 374
16.6.2 在文本窗口中设置滚动面板JScrollPane 375
16.6.3 应用编程实例 375
16.7 选项框JCheckBox 376
16.7.1 选项框事件处理 377
16.7.2 应用编程实例 378
16.8 单选按钮JRadioButton 380
16.8.1 单选按钮事件处理 381
16.8.2 应用编程实例 381
巩固提高练习和实战项目大练兵 384
第17章 GUI组件布局安排组件位置和显示风格 385
17.1 Java的6种布局管理类 385
17.2 系统预设的流程布局FlowLayout 386
17.2.1 3种显示位置 386
17.2.2 编程实例 386
17.3 围界布局管理类BorderLayout 387
17.3.1 5种布局区域 388
17.3.2 高手常用布局嵌套 389
17.3.3 如何动态显示按钮的位置 389
17.4 给组件加上5种不同风格的边框 390
17.4.1 边框BorderFactory设计编程步骤 391
17.4.2 编程实例 392
17.5 标记板JTabbedPane 393
17.5.1 如何应用标记板 393
17.5.2 编程实例 394
17.6 箱式布局BoxLayout和网格布局GridLayout 396
17.6.1 如何应用箱式布局管理 396
17.6.2 如何应用网格布局管理 397
17.6.3 嵌套使用才更灵活 398
实战项目:计算器模拟应用开发(2) 399
17.7 高手要掌握的最强布局管理GridBagLayout 400
17.7.1 必须使用设计图方法和步骤 401
17.7.2 编程实例 402
17.8 用户接口管理UIManager可以做啥 404
17.8.1 常用用户接口管理UIManager 405
17.8.2 编程实例 405
实战项目:开发西方快餐销售调查应用(1) 406
巩固提高练习和实战项目大练兵 407
第18章 更多组件和事件处理 409
18.1 下拉列表JComboBox 409
18.1.1 编程实例 410
18.1.2 事件处理 411
18.1.3 ItemListener事件处理接口 411
18.1.4 我怎么用它编程实例 413
18.2 列表JList 416
18.2.1 编程实例 417
18.2.2 ListSelectionListener事件处理接口 418
18.2.3 列表的更多编程技巧 419
实战项目:利用列表开发名词学习记忆应用 421
18.3 菜单JMenu 422
18.3.1 菜单编写步骤 422
18.3.2 编程举例 423
18.3.3 如何加入子菜单 423
18.3.4 菜单的事件处理 424
18.3.5 设置键盘助记高手才会这样做 424
18.3.6 高手设置快捷键 425
18.3.7 MenuListener处理菜单事件接口 426
实战项目:开发西方快餐销售调查应用(2) 428
18.4 高手须知弹出式菜单 431
18.4.1 一步步教会你编写步骤 431
18.4.2 编程实例 431
18.4.3 PopupMenuListener事件处理接口 433
18.4.4 鼠标右键激活弹出式菜单 433
实战项目:开发西方快餐销售调查应用(3) 434
18.5 高手应掌握更多GUI组件 435
18.5.1 如何应用滑块JSlider 436
18.5.2 如何应用进度条JProgressBar 438
18.5.3 如何应用文件选择器JFileChooser 439
18.5.4 如何应用颜色选择器JColorChooser 441
18.5.5 如何应用制表JTable 442
18.5.6 如何应用树JTree 443
18.5.7 如何应用桌面板JDesktopPane446
巩固提高练习和实战项目大练兵 447
第19章 揭秘事件处理那些事儿 449
19.1 高手须知事件处理内幕 449
19.1.1 事件处理是怎样工作的 449
19.1.2 常用事件处理接口 451
19.1.3 为何要用适配器 452
19.1.4 适配器应用实例 453
19.2 高手必知鼠标事件处理 454
19.2.1 都有哪些鼠标事件 454
19.2.2 鼠标事件处理接口和适配器 454
19.2.3 鼠标事件处理演示程序 454
19.3 高手须知键盘事件处理 455
19.3.1 键盘事件处理接口和适配器 456
19.3.2 键盘事件处理常用方法 456
19.4 高手掌握的GUI组件编程技巧 457
19.4.1 组件编程的6种方式 457
19.4.2 事件处理的6种方式 461
实战项目:计算器模拟应用开发(3) 463
巩固提高练习和实战项目大练兵 465
第20章 多媒体编程高手须知的那些事儿 467
20.1 字体编程 467
20.1.1 字体编程常用术语 467
20.1.2 字体编程常用方法和举例 468
20.1.3 应用实例学会字体编程 469
20.2 颜色编程 470
20.2.1 颜色编程常用术语 471
20.2.2 颜色编程常用方法和举例 471
20.2.3 应用实例学会颜色编程 472
20.3 JavaFX图形编程 473
20.3.1 JavaFX编程步骤 473
20.3.2 图形编程常用方法 474
20.3.3 图形编程步骤 474
20.3.4 应用实例学会图形编程 475
20.4 JavaFX图像编程 476
20.4.1 Java支持的4种图像格式 476
20.4.2 图像编程常用方法 476
20.4.3 图像编程步骤 477
20.4.4 应用实例学会图像编程 477
20.5 JavaFX音频编程 478
20.5.1 Java支持的3种音频格式 478
20.5.2 音频编程常用方法 478
20.5.3 音频编程步骤 479
20.5.4 播放音乐编程实例 479
实战项目:利用多媒体开发英文字母学习游戏应用 480
巩固提高练习和实战项目大练兵 483
第五部分 高手进阶数据流处理和编程
第21章 文件IO 486
21.1 数据流和文件 486
21.1.1 文件IO基本知识须知 487
21.1.2 揭秘文件路径 487
21.1.3 用实例看懂绝对路径和规范路径 488
21.1.4 高手理解URI、URL和URN 488
21.1.5 文件类常用方法 488
21.1.6 文件IO中为什么要缓冲 492
21.1.7 文件IO必须处理异常 492
21.2 文本文件IO 492
21.2.1 文本文件输出 493
21.2.2 缓冲和无缓冲的文本输出 493
21.2.3 文本文件输入 495
21.2.4 文本文件输入实例 496
实战项目:开发产品销售文本文件管理应用 498
21.3 二进制文件IO 502
21.3.1 二进制文件的输出 502
21.3.2 二进制文件输出举例 503
21.3.3 二进制文件的输入 504
21.3.4 二进制文件输入实例 505
实战项目:开发产品销售二进制文件管理应用 507
21.4 高手须知对象序列化IO 510
21.4.1 你的对象序列化了吗 510
21.4.2 手把手教会你对象序列化 511
21.4.3 对象序列化常用类和方法 511
21.4.4 对象序列化编程步骤 511
实战项目:利用对象序列化开发产品销售文件管理应用 512
21.5 随机文件IO 517
21.5.1 随机文件IO常用方法和访问模式 517
21.5.2 文件记录和位置计算 518
21.5.3 用实例学会随机文件IO 518
21.6 高手须知更多文件IO编程技术 520
21.6.1 细谈JFileChooser 520
21.6.2 Java支持的压缩文件IO 521
21.6.3 一步步教会你压缩文件IO 521
21.6.4 用Scanner读入文件 527
实战项目:开发产品销售随机文件管理应用 528
巩固提高练习和实战项目大练兵 534
第22章 数据库编程 536
22.1 揭秘JDBC 536
22.2 数据库基本知识 537
22.3 数据库语言SQL 538
22.3.1 SQL的6种基本指令 538
22.3.2 SQL的基本数据类型 538
22.3.3 创建指令CREATE 539
22.3.4 选择指令SELECT 539
22.3.5 更新指令UPDATE 540
22.3.6 插入指令INSERT 540
22.3.7 删除记录指令DELETE 540
22.3.8 删除数据表指令DROP 541
22.4 数据库和JDBC驱动软件的安装及测试 541
22.4.1 下载数据库软件 541
22.4.2 数据库安装 541
22.4.3 数据库运行测试 542
22.4.4 下载JDBC驱动软件 543
22.4.5 一步步教会你在Eclipse中连接数据库 544
22.4.6 一个实例搞懂JDBC是否连接成功 545
22.4.7 编写第一个数据库程序 545
22.5 Java程序和数据库对话 547
22.5.1 连接数据库高手都会这样做 547
22.5.2 向数据库发送SQL指令 548
22.5.3 接收从数据库传回的记录 549
22.5.4 提取和更新传回的记录 550
22.5.5 预备指令是怎么回事 551
实战项目:利用数据库和GUI开发产品销售管理应用(1) 553
22.6 高手了解更多JDBC编程 558
22.6.1 细谈元数据是啥和怎样用 558
22.6.2 什么是事务处理和怎样实现 559
22.6.3 三个步骤两个实例搞懂事务处理编程 559
实战项目:利用数据库和GUI开发产品销售管理应用(2) 560
巩固提高练习和实战项目大练兵 564
第23章 网络编程 565
23.1 为什么高手必知网络编程 565
23.1.1 必须遵循通信协议 565
23.1.2 URL和IP地址是一回事吗 566
23.1.3 URL和URI 566
23.1.4 端口和通信号 567
23.1.5 一张表看懂端口分配 567
23.1.6 揭秘HTTP 568
23.1.7 URL和URLConnection编程实例 569
23.2 一步步教会你网络编程 570
23.2.1 细谈Socket 570
23.2.2 Stream Sockets和Datagram Sockets 571
23.2.3 用户-服务器编程步骤 571
23.2.4 一个代码实例教会你用户-服务器编程 571
23.2.5 单用户-服务器程序测试运行步骤 574
23.2.6 手把手教你DatagramSocket用户-服务器编程 574
23.3 炼成网络编程高手从这里起步 578
23.3.1 手把手教你Socket多用户-服务器编程 578
23.3.2 多用户-服务器程序测试运行步骤 580
23.3.3 手把手教你Datagram多用户-服务器编程 581
23.3.4 多用户-服务器数据库编程 583
实战项目:开发多用户-服务器产品销售数据库管理应用 584
23.4 高手必会的高级网络编程 590
23.4.1 面向连接传输与面向传输连接 590
23.4.2 怎样设置Socket超时控制 591
23.4.3 揭秘Socket中断技术 592
23.4.4 揭秘Socket半关闭技术 593
23.4.5 揭秘java.nio 593
23.4.6 数据流和数据块网络编程用哪个 594
23.4.7 数据块编程需要通道技术Channel 594
23.4.8 一步步教会你通道技术网络编程 594
23.4.9 应用缓冲的通道编程技术 595
23.4.10 数据块中字符集的定义、编码和译码 596
23.4.11 应用选择器Selector实现多用户-服务器编程 597
23.4.12 一步步教会你选择器多用户-服务器编程 597
23.4.13 通道和选择器编程实例 598
实战项目:开发多用户-服务器聊天室应用 602
巩固提高练习和实战项目大练兵 606
|
內容試閱:
|
Java是世界上第一个100%不依赖操作系统平台、面向对象的编程语言。在从发布、发展到成熟、壮大的20多年里,Java如同一颗冉冉升起的耀眼明星,迅速超越C和C,独占鳌头,成为软件开发最广泛应用的编程语言之一。恭贺你选择了Java,感谢你翻开这本书,它可以作为启迪你Java编程概念的向导、打开通往Java技术宝库的金钥匙。这无疑会使你与Java结下不解之缘,成为掌握和拥有Java技术大家庭中的一员。
Java语言包括广泛的应用技术和应用领域。从应用技术或软件包来说,它包括Java标准版本软件包Java SE、Java企业版本软件包Java EE,以及Java微型版本Java ME。从软件开发及应用领域来说,它包括桌面应用编程、Web客户端编程、服务器编程、移动设备(如手机)编程以及机器人编程等。虽然本书专门介绍Java标准版本的编程概念和技术,但它是学习其他Java技术的基础。学好了本书中介绍和讨论的Java编程概念和技术,掌握其他Java技术就不难了。
那么怎样写好这本书,使读者在合上这本书的时候爱不释手,有继续学下去的欲望;当读者学完这本书的时候,会由衷地说,这本书没有白买,它物超所值,是值得拥有的一本好书呢?
为此,我严格遵循下面的写作思想:
第一,作者必须是读者。这是我多年从事写作的经验之谈。我在写本书的时候,总是在不断地设身处地问自己:在介绍Java编程的众多书中,读者为什么要买你写的书?如果我是读者,会买它吗?回想起我在初学Java的时候,每遇到一个难懂的Java概念编程技术,总是会问:什么是问题所在(What)?为什么会这样(Why)?怎样解决它(How)?我在这本书的写作大纲、章节安排以及内容编排上是按照这样一个3W作为主线,使它成为读者学习Java编程的良师益友。
第二,作者不仅仅是读者。作者必须把握读者的心理,知道读者在学习过程中的难点。我们经常说难者不会,会者不难。我常常问自己:为什么学会了就不难了呢?究根寻源,本来问题就不难,是没有讲清楚、没有写清楚,把概念和技术越说越玄、越写越深奥,如同不会画画,越描越黑。所以我写作的原则是:自己没有搞懂的概念和技术,绝不写,否则一定会误人子弟。懂了就觉得简单了,才会把难的东西写得简单易懂,读者才会受益。
第三,没有实际应用和教学经验的概念和技术,绝不把它写进书里。我是从1996年,即Java正式发布的时候,开始自学Java,并且从事Java教学的。我所在的大学地处美国硅谷,是Java和许多计算机软硬件技术的诞生地。创建Java语言的Sun Microsystems以及收购了它的甲骨文公司(Oracle)就离我的居所十几分钟的车程。我几乎每年都参加JavaOne国际会议,聆听Java领军人物的演讲,参加介绍Java新技术的讲座和培训以及参观所有Java伙伴公司的展厅,收集有关Java软件开发的资料,充实自己的知识。这些经验无疑有益地帮助我完成本书的写作。
第四,以实例和实战项目为主导解释编程概念和难点,我认为这是学习任何编程语言的特点。我在《全C编程》《微型计算机应用用户指南》等书以及我的教学实践中始终把握这个特点,读者和学生受益匪浅,反映甚佳。市面上流行的一些编程书中也会列举大量的例子,但许多只是程序代码片段,或者是读者不能编译执行的程序。我认为这不是真正意义上的通过实例来学习编程。在我的书中500多个实例都是完整的程序,都可以编译和执行。这样不仅可以压缩书的厚度、降低图书价格,还有其他两个好处:读者在学习书中的举例时,可以抓住重点;在深化理解和掌握消化时,可以看到程序的全貌和各个部分的关系。
第五,学习编程关键在于动手。心动不如行动,光看书是学不会Java的。要想知道梨子的滋味,必须亲口尝尝。编程是实践性很强的艺术,我在20多年的教学中,看到许多学生上课认真听讲、专心记笔记;下课用心看书,逐字逐段抠书本,但却忽视了实践环节,缺乏动手能力,为什么?因为做练习太少,上机编写程序太少,分析并修改程序例子太少。针对这个特点,我在教学中注重强调练习、实践、分析、修改、提高、巩固这几个环节。许多编程书籍往往没有练习题部分。我觉得这是十分遗憾或美中不足的事。练习题不仅要有,而且应该涵盖章节中讨论过的所有重要编程概念和技术,引导、鼓励、督促读者勇于实践并且善于实践。
本书就是在以上原则和宗旨的指导下,积累我20多年Java教学和实践经验以及20多年程序设计教学生涯的基础上写成的。
本书分为五部分,共23章。
第一部分 新手上路,共5章:第1章介绍Java的基础知识,第2章介绍Java编程相关的内容,第3章讨论新手须知的类和对象,第4章阐述控制语句相关知识,第5章介绍数据控制和质量保证的基础内容,引导初学者为学习Java编程打好基础。
第二部分 告别菜鸟,共4章:第6章详细介绍类和对象,第7章讨论了继承,第8章介绍多态的用法,第9章阐述接口相关内容,主要讨论面向对象编程的本质概念和技术。
第三部分 Java提高,共6章:第10章细谈数组,第11章深入介绍字符串,第12章揭秘异常处理,第13章介绍高手掌握的更多OOP技术,第14章介绍高手须知的集合类,第15章阐述多线程相关内容,深入介绍Java的其他重要编程概念和技术。
第四部分 GUI和多媒体编程,共5章:第16章介绍GUI相关内容,第17章介绍GUI组件布局安排组件位置和显示风格,第18章说明更多组件和事件处理,第19章揭秘事件处理那些事儿,第20章介绍多媒体编程,引导读者走进Java,包括图形、图像、字体、颜色以及音频播放等多媒体编程世界。
第五部分 高手进阶数据流处理和编程,共3章:第21章介绍文件IO,第22章说明数据库编程,第23章阐述网络编程,使读者成为Java编程和实战项目开发技术的高手。
我们诚心将这本书献给热衷于Java编程的读者。让我们在Java的广袤天地间,为了解Java真相、掌握Java技术,勇于探索和实践。
|
|