第1章 Java核心技术概述 1
1.1 Java产生的历史、现状和特点 1
1.1.1 Java产生的历史 1
1.1.2 Java的现状 2
1.1.3 Java语言的特点 2
1.2 Java与面向对象 5
1.2.1 传统的面向过程和现代的面向对象程序设计语言 6
1.2.2 抽象的概念 6
1.2.3 面向对象编程的3个原则 7
1.2.4 类和实例对象的性质 10
1.3 Java核心技术体系结构 10
1.3.1 Java核心技术基础部分 11
1.3.2 Java核心技术应用部分 12
本章总结 15
第2章 SuperVCD Store项目概述 16
2.1 项目需求分析 16
2.2 项目结构分析和运行指南 20
2.2.1 应用程序结构 20
2.2.2 项目运行指南 20
本章总结 21
第3章 Java启动(Getting Started) 22
3.1 搭建Java开发环境 22
3.1.1 Java开发环境的配置 22
3.1.2 JDK简介 25
3.2 Java核心特性 33
3.2.1 Java虚拟机 33
3.2.2 垃圾回收机制 33
3.2.3 代码安全性检查机制 34
3.3 Java程序开发介绍 35
3.3.1 定义Java程序的基本元素 36
3.3.2 类和对象基本概念 37
3.3.3 编译和运行Java应用程序 40
3.3.4 应用小程序 42
3.4 项目实践 44
本章总结 44
思考题(Review Questions) 45
练习(Assignment) 45
第4章 Java基础语法(一):标识符、关键字及数据类型 47
4.1 标识符 47
4.2 关键字 48
4.3 变量 48
4.4 常量 50
4.5 数据类型 51
4.5.1 基本类型 51
4.5.2 引用类型 55
4.6 项目实践 56
本章总结 59
思考题(Review Questions) 59
练习(Assignment) 60
第5章 Java基础语法(二):表达式及流程控制 61
5.1 运算符 61
5.1.1 算术运算符 61
5.1.2 关系运算符 64
5.1.3 逻辑运算符 65
5.1.4 位运算符 67
5.1.5 赋值运算符 73
5.1.6 条件运算符 74
5.1.7 其他运算符 75
5.2 表达式 75
5.2.1 运算符的优先级 75
5.2.2 数据类型转换 77
5.3 Java控制语句 79
5.3.1 顺序流程 80
5.3.2 分支流程 80
5.3.3 循环流程 82
5.3.4 与程序转移有关的其他语句 84
5.3.5 异常处理语句:try-catch-finally 84
5.4 项目实践 85
本章总结 85
思考题(Review Questions) 85
练习(Assignment) 86
第6章 Java基础语法(三):数组 87
6.1 数组的声明、生成和初始化 87
6.1.1 数组的声明 87
6.1.2 数组的生成 88
6.1.3 数组的初始化 88
6.2 数组的使用 90
6.3 多维数组 91
6.3.1 二维数组的声明 91
6.3.2 二维数组的生成和初始化 91
6.3.3 二维数组的使用 92
6.4 枚举类型的引入 94
6.5 项目实践 94
本章总结 95
思考题(Review Questions) 95
练习(Assignment) 96
第7章 Java面向对象核心语法 97
7.1 面向对象的概念 97
7.1.1 对象和类概述 97
7.1.2 类、方法和变量 101
7.1.3 构造方法 103
7.1.4 方法的重载 103
7.1.5 this的使用 106
7.2 封装 107
7.3 继承 109
7.3.1 继承的概念 109
7.3.2 方法重写(overriding) 111
7.3.3 super的使用 113
7.3.4 继承中的构造方法调用 114
7.3.5 finalize()方法的使用 115
7.3.6 对象的比较 116
7.4 多态 117
7.4.1 多态的概念 117
7.4.2 多态的实现条件 117
7.4.3 多态的代码实现 119
7.5 项目实践 121
本章总结 127
思考题(Review Questions) 128
练习(Assignment) 129
第8章 Java面向对象高级语法 130
8.1 静态(static)变量、方法和初始化程序块 130
8.1.1 静态(static)变量 130
8.1.2 静态(static)方法 131
8.1.3 静态初始化块 133
8.1.4 引入含有静态方法的类 134
8.2 最终(final)类、变量和方法 134
8.3 访问控制(Access Control) 135
8.3.1 类的访问控制 135
8.3.2 类成员变量和成员方法的访问控制 135
8.4 抽象类与抽象方法 136
8.5 接口(Interface) 137
8.5.1 接口的定义 138
8.5.2 接口的实现 138
8.6 基本类型包装器(Wrappers) 140
8.6.1 Double和Float 141
8.6.2 Byte,Short,Integer和Long 143
8.6.3 Character 147
8.6.4 Boolean 149
8.6.5 类型的自动装箱与自动拆箱 149
8.7 集合(Collection)框架 150
8.7.1 Collection 151
8.7.2 List 152
8.7.3 Set 154
8.7.4 Map接口 157
8.7.5 泛型集合 161
8.7.6 使用for-each操作Collection集合 164
8.8 项目实践 168
8.9 内部类 170
8.9.1 内部类概述 170
8.9.2 4种类型的内部类 174
8.10 反射(Reflection) 181
8.10.1 反射的工作原理 181
8.10.2 反射中的主要方法 182
8.10.3 反射的使用 183
8.10.4 反射的安全性和性能 186
8.11 Java常用类介绍 187
8.11.1 String 187
8.11.2 StringBuffer 201
8.11.3 StringTokenizer(字符串标记) 206
8.11.4 Date(日期) 208
8.11.5 Calendar(日历) 209
8.11.6 Random 212
8.11.7 DateFormat类 214
8.11.8 SimpleDateFormat类 216
8.11.9 Runtime 217
8.11.10 Math 220
本章总结 222
思考题(Review Questions) 223
练习(Assignment) 224
第9章 Java异常处理 225
9.1 异常定义 225
9.2 异常分类 225
9.3 异常处理 226
9.4 自定义异常 232
9.5 项目实践 233
本章总结 234
思考题(Review Questions) 235
练习(Assignment) 235
第10章 使用AWT建立图形用户界面 236
10.1 AWT介绍 236
10.2 容器、组件和布局管理器 237
10.2.1 容器 237
10.2.2 布局管理 238
10.2.3 AWT组件库 244
10.3 AWT事件处理 252
10.3.1 AWT事件处理基本概念 252
10.3.2 事件 253
10.3.3 事件处理器(监听器) 254
10.3.4 适配器(Adapter) 261
本章总结 268
思考题(Review Questions) 268
练习(Assignment) 269
第11章 使用Swing建立图形用户界面 270
11.1 Swing简介 270
11.2 Swing组件(Components) 272
11.2.1 Swing组件的层次结构 272
11.2.2 Swing组件的特性 274
11.2.3 Swing组件和容器 276
11.3 项目实践 290
本章总结 309
思考题(Review Questions) 309
练习(Assignment) 309
第12章 Applet编程技术 310
12.1 Applet简介 310
12.2 Applet基本概念 311
12.2.1 Applet的生命周期 312
12.2.2 Applet的主要方法 312
12.3 Applet的安全性 315
12.4 Applet与浏览器相互间的通信 315
本章总结 324
思考题(Review Questions) 324
练习(Assignment) 324
第13章 多线程高级编程 326
13.1 多线程简介 326
13.2 多线程的使用 332
13.2.1 创建线程 333
13.2.2 启动线程 336
13.2.3 线程的其他方法 338
13.3 线程状态的转换 338
13.4 资源同时读取问题和线程的同步 341
13.4.1 基本概念 341
13.4.2 多线程之间的同步和通信 342
13.4.3 线程死锁 349
13.5 项目实践 350
本章总结 352
思考题(Review Questions) 352
练习(Assignment) 353
第14章 使用输入/输出类 355
14.1 Java输入/输出流简介 355
14.2 java.io包的层次结构 356
14.3 常用输入/输出类 360
14.3.1 常用输入类 360
14.3.2 常用输出类 362
14.4 文件和目录的操作 368
14.4.1 文件基本操作 368
14.4.2 随机访问文件 369
14.5 对象流和对象序列化 370
14.5.1 序列化概述 370
14.5.2 序列化的实现 371
14.5.3 序列化机制 371
14.6 项目实践 374
本章总结 382
思考题(Review Questions) 382
练习(Assignment) 383
第15章 使用TCP/IP和UDP/IP开发网络程序 384
15.1 Java网络编程简介 384
15.2 理解TCP/IP及UDP/IP协议 385
15.3 使用ServerSocket和Socket开发TCP/IP网络程序 386
15.3.1 Socket通信概述 386
15.3.2 Socket通信的一般过程 387
15.4 基于URL的高层次Java网络编程 394
15.4.1 URL(统一资源定位器) 394
15.4.2 URL的组成 394
15.4.3 创建一个URL 394
15.4.4 通过URLConnection读取数据 395
15.5 使用DatagramPacket和DatagramSocket开发UDP/IP网络程序 396
15.5.1 Datagram通信的基本概念 396
15.5.2 基于UDP的程序开发 397
15.6 项目实践 403
本章总结 407
思考题(Review Questions) 407
练习(Assignment) 407
第16章 使用JDBC技术开发数据库应用 409
16.1 数据库的基本概念 409
16.1.1 什么是数据库 409
16.1.2 数据库在应用程序中的重要地位 409
16.1.3 数据库管理系统(DBMS) 409
16.1.4 数据库的发展历程 409
16.1.5 关系型数据库(RDBMS)简介 410
16.2 SQL(Structured Query Language) 410
16.3 JDBC开发基础流程 418
16.3.1 使用JDBC-ODBC Bridge桥接方式连接数据库 419
16.3.2 使用纯JDBC连接数据库 420
16.3.3 JDBC连接MySQL数据库实例 421
16.4 Statement对象 424
16.5 PreparedStatement对象 425
16.6 JDBC异常处理 425
16.6.1 SQLException类 425
16.6.2 JDBC警告(SQLWarning) 426
16.7 JDBC事务处理 427
16.7.1 保证数据真实、正确与完整性(Integrity) 427
16.7.2 解决数据同时访问问题(Concurrency Control) 429
16.8 项目实践 430
本章总结 435
思考题(Review Questions) 435
练习(Assignment) 435
附录A Java集成开发环境(IDE)Eclipse介绍 437
附录B Java编程规范 446
附录C 与Java开发有关的UNIX介绍 458
附录D Java与C++比较 465
附录E Java本地接口 483
附录F JDK 6.0新特性 488