Java高手是怎样炼成的:原理.方法与实践 版权信息
- ISBN:9787302563846
- 条形码:9787302563846 ; 978-7-302-56384-6
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 所属分类:>>
Java高手是怎样炼成的:原理.方法与实践 本书特色
资深软件工程师20多年教学与开发经验结晶,通过500多个简单易懂、可运行的完整实例,帮助读者理解Java编程的逻辑、概念及实操资深软件工程师20多年教学与开发经验结晶,通过500多个简单易懂的实例完全理解Java编程从入门到精通,从菜鸟炼成高手,手把手教你掌握Java编程。
Java高手是怎样炼成的:原理.方法与实践 内容简介
《Java高手是怎样炼成的:原理、方法与实践》是作者20多年工作经验的结晶。内容由浅入深,循序渐进,通过500多个简单易懂、可运行的完整实例,帮助读者理解Java编程的逻辑、概念及实操。本书内容丰富,讲解接地气,从理论到实践,从基础到不错,帮助读者建立学习信心,在实践中学会Java编程。
《Java高手是怎样炼成的:原理、方法与实践》分五部分,共23章。部分(~5章)主要介绍Java基本语法,包括Java语言概述和发展、编程和开发环境及设置等。第二部分(第6~9章)通过生动实例介绍类、对象、继承、多态、内部类以及接口等Java编程概念和技术。第三部分(0~15章)走进数组和字符串,深入讲解它们的应用、异常处理,并深入讨论更多面向对象技术。第四部分(6~20章)介绍20多种GUI组件、字体、颜色、图像以及音频编程。第五部分(第21~23章)详细讲解数据流、文件I/O、数据库编程以及网络编程等。
《Java高手是怎样炼成的:原理、方法与实践》专为不同层次的Java程序员精心编写,既适合编程初学者入门,又适合程序员进阶,还可以作为高等院校讲授面向对象程序设计语言以及Java语言的参考教材。
Java高手是怎样炼成的:原理.方法与实践 目录
目 录
**部分 新手上路
第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 什么是IDE········································10
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 怎样编写标签——JLabel·············368
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 如何应用桌面板——JDesktopPane·································446
巩固提高练习和实战项目大练兵 ·················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章 文件I/O ······························486
21.1 数据流和文件 ······································486
21.1.1 文件I/O基本知识须知 ················487
21.1.2 揭秘文件路径 ·······························487
21.1.3 用实例看懂绝对路径和规范路径 ···················488
21.1.4 高手理解URI、URL和URN ······488
21.1.5 文件类常用方法 ···························488
21.1.6 文件I/O中为什么要缓冲 ············492
21.1.7 文件I/O必须处理异常 ················492
21.2 文本文件I/O ·······································492
21.2.1 文本文件输出 ·······························493
21.2.2 缓冲和无缓冲的文本输出 ···········493
21.2.3 文本文件输入 ·······························495
21.2.4 文本文件输入实例 ·······················496
实战项目:开发产品销售文本文件管理应用 ··················498
21.3 二进制文件I/O ···································502
21.3.1 二进制文件的输出 ·······················502
21.3.2 二进制文件输出举例 ···················503
21.3.3 二进制文件的输入 ·······················504
21.3.4 二进制文件输入实例 ···················505
实战项目:开发产品销售二进制文件管理应用 ··············507
21.4 高手须知对象序列化I/O ···················510
21.4.1 你的对象序列化了吗 ···················510
21.4.2 手把手教会你对象序列化 ···········511
21.4.3 对象序列化常用类和方法 ···········511
21.4.4 对象序列化编程步骤 ···················511
实战项目:利用对象序列化开发产品销售文件管理应用 ···················512
21.5 随机文件I/O ·······································517
21.5.1 随机文件I/O常用方法和访问模式 ····················517
21.5.2 文件记录和位置计算 ···················518
21.5.3 用实例学会随机文件I/O ·············518
21.6 高手须知更多文件I/O编程技术 ······520
21.6.1 细谈JFileChooser ·························520
21.6.2 Java支持的压缩文件I/O ·············521
21.6.3 一步步教会你压缩文件I/O ·········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高手是怎样炼成的:原理.方法与实践 作者简介
高永强,博士,现任美国加利福尼亚州奥龙尼学院计算机系终身教授,并受聘为国内外多所大学的客座教授。从事国内外计算机教学以及软件开发和咨询20多年,专长于计算机语言、计算机管理信息系统,以及计算机应用和培训。出版著作《微型计算机应用用户指南》《全C编程》和《Java编程艺术》。
卢晨,苏州大学计算机科学与技术学院研究生毕业,苏州工业园区服务外包职业学院副教授。拥有十余年一线软件开发教学经验,教授Java程序设计、Android开发等课程,主持和参与多个移动应用系统、网站系统开发项目,主编和参编《Java实践教程》《Android高级应用开发案例教程》等。