第1章 Java基础 1
1.1 Java诞生记 1
1.2 Java家族成员的介绍 1
1.3 Java平台的特点 2
1.4 JDK的安装与配置 3
1.4.1 JDK的安装 3
1.4.2 给JDK配置环境变量 5
1.4.3 JDK编译和运行命令 6
1.5 用开发工具武装Java 8
1.5.1 MyEclipse的安装 8
1.5.2 Java的定制装备Netbeans 10
1.5.3 第一个Java程序 11
1.6 综合实例 12
1.7 本章小结 18
1.8 上机练习 18
第2章 Java开场白 19
2.1 认识Java程序 19
2.1.1 理解main()为何物 19
2.1.2 Java代码的组织习惯 21
2.2 认识变量 22
2.2.1 变量的声明 22
2.2.2 命名要规范 22
2.2.3 八种基本类型变量 23
2.2.4 变量的范围 27
2.2.5 注释 29
2.3 认识常量 29
2.4 数据的类型 30
2.4.1 类型的转换 30
2.4.2 引用类型 32
2.5 Java关键字 32
2.6 标识符命名 33
2.7 转义字符有讲究 33
2.8 Java运算符 35
2.8.1 算术运算符 35
2.8.2 赋值运算符 38
2.8.3 关系运算符 40
2.8.4 逻辑运算符 41
2.8.5 位运算符 44
2.8.6 其他运算符 46
2.8.7 运算符号之优先级 47
2.9 程序流程控制 47
2.9.1 顺序结构 48
2.9.2 选择结构 48
2.9.3 循环结构 52
2.10 数组也是类型 58
2.10.1 一维数组 58
2.10.2 二维数组 61
2.10.3 多维数组 61
2.11 综合实例 62
2.12 本章小结 64
2.13 上机练习 64
第3章 这些算法很有用 65
3.1 比较值 65
3.1.1 最大值 65
3.1.2 最小值 68
3.1.3 平均值 70
3.2 数字排序 71
3.2.1 算法——冒泡排序 71
3.2.2 选择排序 71
3.2.3 插入排序 72
3.2.4 快速排序 73
3.3 查找 74
3.3.1 顺序查找 74
3.3.2 二分查找 75
3.4 Java工具类中算法的实现 76
3.5 综合实例 78
3.6 本章小结 79
3.7 上机练习 80
第4章 Java的面向对象程序设计 81
4.1 面向对象的设计思想 81
4.2 说说“类” 82
4.2.1 类的概念 82
4.2.2 封装的概念 83
4.2.3 类的创建 84
4.2.4 对象的创建和使用 86
4.3 Java中的方法 88
4.3.1 Java程序执行过程分析 88
4.3.2 方法的分类 89
4.3.3 构造方法 89
4.3.4 自定义方法 91
4.3.5 方法重载 93
4.3.6 方法的调用 94
4.3.7 方法参数及其传递问题 98
4.3.8 方法递归 101
4.4 类的属性 102
4.4.1 属性 102
4.4.2 this关键字 103
4.4.3 变量的作用域和生存期 105
4.5 此“包”不是LV 105
4.5.1 取个不会重复的包名 106
4.5.2 用包导入类型 106
4.5.3 包名也有规范 109
4.6 使用枚举 109
4.7 综合实例 112
4.8 本章小结 113
4.9 上机练习 113
第5章 类的继承和多态 114
5.1 Java中的继承 114
5.1.1 Object类及其方法 114
5.1.2 对象中的克隆 115
5.1.3 Java的继承 118
5.1.4 super关键字 120
5.2 多态变化 122
5.2.1 Java中多态的实现 122
5.2.2 类型检测——向上转型/向下转型 123
5.2.3 动态绑定 126
5.3 Static关键字 127
5.3.1 静态变量 128
5.3.2 静态方法 128
5.3.3 静态代码块 128
5.4 Final关键字 129
5.4.1 Final属性 129
5.4.2 Final方法 130
5.4.3 Final类 130
5.5 Abstract关键字 130
5.5.1 抽象类 130
5.5.2 抽象方法 131
5.6 综合实例 132
5.7 本章小结 135
5.8 上机练习 135
第6章 接口浅议 136
6.1 一个简单接口的例子 136
6.2 接口的声明 137
6.3 使用接口 137
6.3.1 接口的使用 138
6.3.2 Java接口的特征归纳 138
6.4 接口也可以继承 140
6.5 标记接口 141
6.6 综合实例 141
6.7 本章小结 142
6.8 上机练习 142
第7章 内部类、对象包装及装箱拆箱 143
7.1 内部类 143
7.1.1 内部类简介 143
7.1.2 成员内部类 143
7.1.3 局部内部类 144
7.1.4 静态内部类 145
7.1.5 匿名内部类 146
7.2 对象的包装 148
7.2.1 对象包装器类介绍 148
7.2.2 包装器类的使用 148
7.2.3 字符串,包装类,原始数据与类间转换 150
7.3 装箱和拆箱 150
7.3.1 装箱 150
7.3.2 拆箱 151
7.4 综合实例 151
7.5 本章小结 152
7.6 上机练习 152
第8章 程序的异常 153
8.1 异常声明,捕获和处理 153
8.1.1 异常机制概述 153
8.1.2 在Java中如何进行异常处理 155
8.2 用Log4J记录异常日志信息 161
8.2.1 什么是日志 161
8.2.2 如何使用log4j记录日志 161
8.3 综合实例 168
8.4 本章小结 169
8.5 上机练习 170
第9章 最频繁的操作类型——字符串和日期 171
9.1 String 171
9.1.1 字符串的不变性 171
9.1.2 StringBuffer类的使用 182
9.1.3 String Builder类的使用 185
9.2 字符串的编码 185
9.3 正则表达式 187
9.3.1 正则表达式概述 187
9.3.2 正则表达式在Java中的应用 188
9.4 日期类 189
9.5 日期计算 190
9.6 日期的格式化 193
9.6.1 SimpleDateFormat类的使用 193
9.6.2 DateFormat类的使用 195
9.7 综合实例 197
9.8 本章小结 197
9.9 上机练习 198
第10章 集合 199
10.1 Java集合 199
10.1.1 集合与数组区别 199
10.1.2 集合包结构 199
10.2 容器类 200
10.2.1 Collection接口 200
10.2.2 Comparable/comparable接口 206
10.2.3 增强for循环 208
10.2.4 Iterator接口 214
10.2.5 Map接口 216
10.3 容器选择原则 220
10.4 综合实例 220
10.5 本章小结 225
10.6 上机练习 225
第11章 让你一心二用——线程机制 226
11.1 线程简介和Java实现 226
11.1.1 了解线程和进程的概念 226
11.1.2 主线程 226
11.1.3 线程的创建和启动 226
11.2 线程组 232
11.3 线程状态 232
11.3.1 线程状态 232
11.3.2 线程状态转换 233
11.3.3 让线程间通信 236
11.3.4 小心死锁 251
11.3.5 常用的线程集合类 251
11.3.6 守护线程 252
11.4 综合实例 253
11.5 本章小结 254
11.6 上机练习 254
第12章 用I/O进行数据处理 255
12.1 文件 255
12.1.1 文件操作 255
12.1.2 目录管理 258
12.2 流和流的分类 259
12.2.1 字节流和字符流 261
12.2.2 过滤(处理)流 266
12.2.3 内存操作流 269
12.2.4 缓冲流 270
12.2.5 Scanner类 272
12.2.6 对象序列化与反序列化 273
12.2.7 打印流 275
12.2.8 RandomAccessFile随机访问文件 276
12.3 综合实例 278
12.4 本章小结 281
12.5 上机练习 281
第13章 神奇的反射与注解 282
13.1 反射概念 282
13.1.1 Class类 282
13.1.2 用反射获取类的属性 283
13.1.3 用反射获取类的方法 286
13.1.4 用反射获得构造方法 291
13.1.5 反射操作数组 293
13.2 注解 294
13.2.1 什么是注解 294
13.2.2 Java常用注解 294
13.2.3 自定义注解 295
13.3 综合实例 300
13.4 本章小结 304
13.5 上机练习 304
第14章 Java回收垃圾与网络编程 305
14.1 System.gc()请求垃圾回收 305
14.2 finalize()方法 306
14.3 Java网络编程之URL 307
14.3.1 URL是什么 308
14.3.2 URL的组成 308
14.3.3 创建URL 309
14.3.4 解析URL 309
14.4 Java网络编程之Socket编程 315
14.4.1 Sokect编程的一般步骤 315
14.4.2 Socket服务端编程 316
14.4.3 Socket客户端的编程 323
14.5 UDP编程 325
14.5.1 UDP编程Server端 325
14.5.2 UDP编程客户端 326
14.6 本章小结 327
14.7 上机练习 327
第15章 让界面炫起来 328
15.1 MyEclipse又见面了 328
15.1.1 MyEclipse试用 328
15.1.2 用MyEclipse运行代码及常用快捷键 332
15.2 AWT的应用 334
15.2.1 AWT组件和容器 334
15.2.2 布局管理器 337
15.3 Swing简介 345
15.3.1 Swing的类层次结构 345
15.3.2 Swing容器与组件 346
15.3.3 事件驱动模型 353
15.3.4 匿名内部类在事件处理中的应用 359
15.3.5 JTextPane面板 361
15.3.6 菜单设计 364
15.3.7 运用各种对话框JOptionPane 370
15.3.8 运用JTable 376
15.3.9 运用JTree 382
15.4 QQ登录界面及部分功能实现 386
15.5 本章小结 388
15.6 上机练习 388
第16章 数据库技术很重要 389
16.1 选择MySQL 389
16.1.1 MySQL简介 389
16.1.2 MySQL的安装与配置 389
16.1.3 MySQL支持的SQL语法 394
16.2 用JDBC与数据库交互 400
16.2.1 JDBC简介 401
16.2.2 JDBC驱动程序原理 401
16.3 Java与MySQL数据库的连接 401
16.4 查询数据和结果集 402
16.5 更新删除数据 408
16.6 Prepared Statement对象的使用 409
16.7 事务小议 413
16.8 连接池简介 415
16.9 简单仓库管理系统实现 418
16.9.1 数据库设计 418
16.9.2 界面设计 419
16.9.3 数据库操作 428
16.10 本章小结 448
16.11 上机练习 448
第17章 XML技术的应用 449
17.1 XML开场白 449
17.1.1 XML的作用 449
17.1.2 XML的书写 449
17.2 用Java处理XML 454
17.2.1 Jaxp Dom解析XML 454
17.2.2 Jaxp SAX解析 465
17.2.3 使用Dom4J解析XML 468
17.3 本章小结 477
17.4 上机练习 478
第18章 自己也能设计万年历 479
18.1 日历基本功能分析 479
18.2 界面设计 480
18.3 逻辑模块设计 483
18.4 本章小结 491
第19章 简易考试系统 492
19.1 系统功能简介 492
19.2 系统架构设计 493
19.3 用户登录模块 494
19.3.1 用户表创建 494
19.3.2 公共类访问数据库(DBUtil) 495
19.3.3 用户业务层(UserService) 497
19.3.4 登录界面 498
19.4 主界面模块 502
19.5 考试界面模块 504
19.5.1 解析试卷 504
19.5.2 考试界面 507
19.6 本章小结 513