第1部分做好准备工作
第1章准备学习Java
1.1Java是什么,什么是Java
1.1.1Java是一种跨平台的计算机编程语言
1.1.2Java的开发及运行环境
1.1.3Java程序的开发流程
1.2让计算机更聪明——Java能做什么
1.2.1Java的桌面应用
1.2.2Java的网页应用
1.2.3Java的手机应用
1.2.4Java的其他应用
1.3开始搭建Java环境
1.3.1JDK简介
1.3.2JDK的下载及安装
1.3.3JDK的相关配置
1.4开发第一个Java程序
1.4.1Hello,World!程序
1.4.2Java程序的构成
1.5如何学习Java
1.6小结
1.7习题
第2章 现实世界VS Java世界——了解面向对象的Java
2.1 万事万物皆对象——理解对象模型 25
2.1.1 程序员眼中的世界——现实世界中的对象 25
2.1.2 什么是“对象” 25
2.1.3 现象世界中的对象 26
2.2 对象之间的差别——事物的属性 28
2.2.1 何为对象的属性 28
2.2.2 对象与属性的关系 30
2.3 万物皆有变化——对象的方法 30
2.3.1 对象的方法定义 30
2.3.2 对象方法的一个示例 32
2.4 “物”以“类”聚——什么是“类” 33
2.4.1 为什么要定义“类”这个概念 33
2.4.2 什么是“类”,类与对象的关系 36
2.4.3 “类”与“类”之间的关系 37
2.5 为什么要面向对象编程 37
2.5.1 面向对象有什么好处 38
2.5.2 面向对象编程的特点 40
2.6 程序中的对象——Java的对象世界 43
2.6.1 Java对象的模具——Java的类 43
2.6.2 从模具到成品——用class定义对象 45
2.6.3 什么是Java中的对象 46
2.6.4 拿来主义——extends的威力 47
2.6.5 对象的“使用说明”——方法的实现 50
2.7 内外有别——对象的封装 51
2.7.1 公开还是保密——访问控制关键字 51
2.7.2 要遵纪守法——对象的操作方式 54
2.8 绝知此事要躬行——自己动手定义对象 56
2.8.1 如何定义一个圆的类 57
2.8.2 如何定义一个圆的方法 59
2.8.3 查看运行的结果 60
2.9 小结 61
2.10 习题 61
第2部分 程序中的数据
第3章 事物的属性——变量和常量
3.1 如何表示各种各样的属性——属性是由数据表示的 64
3.1.1 数据也不简单——数据是多种多样的 64
3.1.2 计算机比较“贰”——只认0和1 64
3.1.3 小数怎么办——浮点型 67
3.1.4 字母怎么办——字符型 68
3.1.5 只表示“真”和“假”——布尔型 70
3.2 数据也可以“包装”——基本类型的对象类型 70
3.2.1 对象类型给我们带来了什么——对基本类型的特性进行封装 71
3.2.2 仍从最简单的开始——整型的对象类型 71
3.2.3 当然不止是整数类型——其他基本类型的对象类型 73
3.3 数据住在何处——Java的变量 75
3.3.1 先登记,再入住——变量的定义与初始化 75
3.3.2 改变变量的值——为变量赋值 77
3.3.3 变量也玩克隆——变量的复制 80
3.3.4 铁路民警,各管一段——变量的作用域 82
3.3.5 数据“接力赛”——变量作为函数参数 85
3.4 一切因你而变——神奇的自动打包与解包 88
3.4.1 自动打包——基本类型的封装 88
3.4.2 自动解包——打包的逆过程 89
3.4.3 实例分析——事实说明一切 91
3.5 不能改变值的“变量”——常量 93
3.6 小结 94
3.7 习题 95
第3部分 较复杂的数据
第4章 变量的组合——数组 98
4.1 Java中的数组 98
4.1.1 为什么要有数组 98
4.1.2 Java数组的定义 99
4.2 最简单的数组——一维数组 100
4.2.1 Java中一维数组的声明与创建 100
4.2.2 Java中数组的基本操作 105
4.2.3 为什么叫一维数组 109
4.3 数组的数组——二维数组 110
4.3.1 认识二维数组 110
4.3.2 二维数组的初始化 112
4.3.3 二维数组的访问 115
4.3.4 不规则数组 117
4.4 数组的数组的数组…… 120
4.4.1 多维数组的概念及其声明 120
4.4.2 多维数组的创建与初始化 121
4.5 数组的高级应用 123
4.5.1 认识Arrays类 123
4.5.2 数组内容的输出 124
4.5.3 数组的填充 125
4.5.4 数组的复制 126
4.5.5 数组的比较 128
4.5.6 数组的排序 132
4.5.7 数组的查找 134
4.6 小结 138
4.7 习题 138
第5章 字符大派对——字符串 139
5.1 认识String类 139
5.1.1 String类型和字符数组的区别 139
5.1.2 声明与创建String对象 140
5.1.3 字符串的连接 147
5.2 获取字符串的信息 148
5.2.1 求字符串的长度 148
5.2.2 判断字符串是否相等 149
5.2.3 字符串的比较 151
5.2.4 字符串的查找 153
5.2.5 取得子串与判断字符串的开头与结尾 156
5.3 字符串的操作 158
5.3.1 分割字符串 158
5.3.2 大小写转换 159
5.3.3 删除两端空白字符 161
5.3.4 字符串的替换 162
5.4 字符串与其他类型的关系 163
5.4.1 对象及基本类型变量的字符串表示 163
5.4.2 字符串与基本数据类型的相互转换 165
5.4.3 格式化字符串 169
5.4.4 日期和时间的格式化字符串 172
5.5 字符串与字符数组 173
5.5.1 字符串到字符数组 173
5.5.2 复制字符串中的字符到字符数组 174
5.6 StringBuffer和StringBuilder类 176
5.6.1 StringBuffer类的方法 176
5.6.2 StringBuffer类应用举例 179
5.7 小结 181
5.8 习题 181
第4部分 程序功能的实现
第6章 改变变量的值——方法和它的表达式 184
6.1 从函数的角度来理解方法 184
6.2 方法的参数与返回类型 186
6.2.1 static关键字 186
6.2.2 方法的返回类型 188
6.2.3 方法的参数 189
6.2.4 一个例子 190
6.3 方法的“灵魂”——实现 193
6.4 方法中的表达式 194
6.4.1 从小学数学做起——算术表达式 194
6.4.2 总是需要做比较——关系表达式 196
6.4.3 拥有侦探的思维——逻辑表达式 196
6.4.4 返朴归真——位运算表达式 199
6.4.5 表达式举例 200
6.5 Java的其他运算符 202
6.5.1 赋值运算符 203
6.5.2 自增和自减运算符 204
6.5.3 括号运算符 205
6.5.4 条件运算符(conditional operator) 206
6.6 Java表达式中的计算顺序与类型转换 207
6.6.1 运算符的优先级与结合性 207
6.6.2 数据类型转换 210
6.7 小结 214
6.8 习题 215
第7章 不仅仅是表达式——Java中的语句 216
7.1 程序的结构化设计 216
7.1.1 顺序结构(sequence structure) 216
7.1.2 选择结构(selection structure) 217
7.1.3 循环结构(iteration structure) 218
7.2 具体情况具体分析——if判断语句 219
7.2.1 初识简单的if语句 219
7.2.2 if … else语句 221
7.2.3 多层if 语句的嵌套 222
7.2.4 一个if语句的例子 224
7.3 更多的分支选择——switch语句 226
7.3.1 switch语句的语法 226
7.3.2 switch语句的流程图 226
7.3.3 深入了解switch语句 227
7.3.4 switch语句的例子 230
7.4 懒人的福音——循环语句 233
7.5 每人执行一次——for循环语句 236
7.6 更方便使用的for each循环 239
7.7 while和do-while循环 241
7.8 break和continue语句 244
7.9 当一个不再够用——循环也可以嵌套 248
7.10 慧眼识英才——哪种循环适合你 253
7.11 小结 255
7.12 习题 255
第5部分 面向对象的高级内容
第8章 方法的多样性——继承和多态 258
8.1 如何创建对象 258
8.2 对象的构造方法 260
8.3 类的继承 266
8.3.1 继承的概念 266
8.3.2 super关键字 269
8.3.3 构造方法的例子 270
8.3.4 不能被继承的final类 274
8.4 多样的Java方法 274
8.4.3 重载vs覆盖 280
8.5 对象的类型转换 282
8.6 Object类及它里面的方法 291
8.7 小结 295
8.8 习题 296
第9章 形形色色的对象类型——Java中的类 297
9.1 作为类型的类 297
9.2 类中类——嵌套类 303
9.3 抽象类 308
9.4 接口 317
9.5 如何使用Java类库 330
9.6 小结 336
9.7 习题 337
第10章 Java程序的对外接口——输出/输入对象 338
10.1 向Java程序传递参数 338
10.2 基本输入/输出——read()和print() 341
10.3 输入/输出流与文件 346
10.4 文本文件的输入/输出 352
10.5 文本字符流的I/O 364
10.6 bit(字节)流的I/O 373
10.7 具有缓冲区的输入输出 383
10.8 百里挑一——如何选择合适的I/O类 392
10.9 小结 394
10.10 习题 394
第6部分 异常处理机制
第11章 意外的情况——异常处理 396
11.1 异常处理的概念 396
11.2 Java异常的体系结构 400
11.3 Java程序中如何处理异常 406
11.4 定义自己的异常 413
11.5 编写健壮的Java程序 419
11.6 小结 422
11.7 习题 423
第7部分 数据库入门
第12章 通过Java使用MySQL数据库 426
12.1 请个数据管家——MySQL 426
12.2 认识结构化查询语言——SQL 433
12.3 先和“管家”建立联系——用JDBC来连接到数据库 436
12.4 通过Java来操作MySQL数据库 440
12.5 小结 454
12.6 习题 455
附录A A SCII码表 456
附录B:Java运算符表 458
附录C:Java关键字表 460