第一篇Java语言了解必备篇 1
第1章Java技术概览 1
1.1 Java技术 1
1.1.1 Java编程语言 1
1.1.2 Java语言平台 2
1.1.3 Java语言的功能 3
1.1.4 Java语言的优点 3
1.2 Windows下的“HelloWorld”应用程序 4
1.2.1创建应用程序的软件环境 4
1.2.2创建“HelloWorld”应用程序的步骤 4
1.3深入探讨“HelloWorld”应用程序 6
1.3.1注释源代码 7
1.3.2实现类定义 7
1.3.3详解main方法 7
1.4常见疑难解答 8
1.4.1环境变量设置错误 8
1.4.2语法错误 8
1.4.3语义错误 8
1.4.4运行时错误 9
1.5小结 10
1.6习题 10
第2章Java开发工具及环境设置 11
2.1 Java开发工具简介 11
2.2如何下载并安装JDK 11
2.3 JDK内置工具 12
2.3.1 JDK常用工具 12
2.3.2 JDK常用工具实例 12
2.3.3应用程序发布工具(jar) 13
2.4 jar文件的创建与查看 14
2.4.1创建jar文件 14
2.4.2查看jar文件的内容 17
2.4.3提取jar文件的内容 17
2.4.4更新jar文件 19
2.4.5运行打包的jar软件 20
2.5 JDK环境设置 22
2.5.1设置Path环境变量 22
2.5.2设置classpath环境变量 22
2.6一个简单的Java应用程序 23
2.7一个简单的Java Applet应用程序 24
2.7.1编写一个Applet 24
2.7.2编写一个用来调用Applet Java程序的HTML文件 25
2.7.3 Applet的运行过程 25
2.8注释及内嵌式文档 26
2.9常见疑难解答 26
2.9.1 JDK和J2SDK的区别 26
2.9.2 Java文件扩展名是否区分大小写 27
2.10小结 27
2.11习题 27
第3章Java语言中的数据与运算符 28
3.1数制 28
3.1.1基本概念 28
3.1.2 Java语言中的数制表现形式 28
3.2数据类型 29
3.2.1整型 29
3.2.2字符型 32
3.2.3浮点型 32
3.2.4布尔型 34
3.3变量 35
3.3.1变量的声明 35
3.3.2变量的含义 35
3.3.3变量的分类 35
3.4变量如何初始化 37
3.5常量 39
3.6运算符 40
3.6.1算术运算符 40
3.6.2关系运算符 44
3.6.3逻辑运算符 45
3.6.4位运算符 47
3.6.5移位运算符 49
3.6.6赋值运算符 50
3.6.7三元运算符 51
3.6.8逗号运算符 51
3.6.9转型运算符 52
3.6.10运算符的优先级别 52
3.7常见疑难解答 53
3.7.1如何将十进制转换成二进制 53
3.7.2转型运算符会引起精度问题,为什么还要使用它 53
3.8小结 53
3.9习题 53
第4章 程序设计中的流程控制 54
4.1编程风格 54
4.2条件语句 55
4.2.1条件语句的种类 55
4.2.2如何使用好条件语句 61
4.3循环语句 61
4.3.1 for语句 62
4.3.2 while循环 64
4.3.3 do...while语句 67
4.4中断与继续语句 68
4.4.1中断控制语句 68
4.4.2继续语句 70
4.5分支语句 71
4.6返回语句 74
4.7常见疑难解答 75
4.7.1普通循环是使用for语句还是while语句 75
4.7.2一般的程序可否用分支语句来代替条件语句 75
4.8小结 75
4.9习题 75
第5章 数组 76
5.1数组概念的引入 76
5.1.1实例的引入 76
5.1.2数组的概念 76
5.1.3用实例说明数组的用处 77
5.2基本数据类型的数组 77
5.2.1基本类型数组的声明 77
5.2.2基本类型数组的初始化 78
5.3由实例引出不同数组种类及其使用 79
5.3.1由实例引出一维数组及其使用 79
5.3.2由实例引出二维数组及其使用 82
5.4数组的综合实例 83
5.5常见疑难解答 87
5.5.1声明数组需要注意什么 87
5.5.2数组在平时的程序代码中使用是否频繁 87
5.6小结 87
5.7习题 87
第6章 字符串的处理 88
6.1字符串的基本概念 88
6.2字符串处理的类库种类 89
6.2.1字符串的赋值 89
6.2.2字符串的处理类——String 89
6.2.3字符串处理的方法 93
6.2.4缓冲字符串处理类——StringBuffer 100
6.2.5缓冲字符串StringBuffer类的构造器 100
6.2.6缓冲字符串处理的方法 102
6.2.7缓冲字符串类的特点 106
6.3用实例演示如何处理字符串 106
6.4如何格式化输出 107
6.5常见疑难解答 108
6.5.1 “equals”和“==”的区别 108
6.5.2 String类为何被定义成final约束 108
6.5.3 char类型如何转换成int类型,int类型如何转换成字符串 108
6.6小结 108
6.7习题 109
第二篇Java语言特色篇 111
第7章类 111
7.1 JDK 5和JDK 6特性 111
7.1.1什么是JDK 111
7.1.2 JDK 5的特点 111
7.1.3 JDK 6的特点 112
7.1.4 JDK 5与JDK 6的比较 112
7.2用比较法阐述类的概念 112
7.3 Java中已有的类 113
7.3.1 Java的数学运算处理类Math 113
7.3.2测试时间和日期的类Date 115
7.3.3测试日历的类GregorianCalendar 116
7.3.4日历处理的实例解析 118
7.4用实例分析设计一个类的流程 119
7.4.1如何在现实程序设计中提取一个类 119
7.4.2设置器和访问器 126
7.4.3总结 127
7.5常见疑难解答 128
7.5.1类在程序语言中起到了什么作用 128
7.5.2设置器和访问器的作用 128
7.6小结 128
7.7习题 128
第8章 对象和包 129
8.1对象 129
8.1.1什么是对象 129
8.1.2操作对象 130
8.1.3初始化对象 130
8.2对象家族中的成员 131
8.2.1对象的成员方法 131
8.2.2对象的成员变量 136
8.3对象中访问控制符的重要性 136
8.3.1什么是访问控制符 136
8.3.2如何使用访问控制符及其重要性 139
8.4重载 140
8.4.1什么是重载 140
8.4.2用实例来说明重载的意义 141
8.5包 142
8.5.1什么是Java中的包 142
8.5.2如何实现包 143
8.5.3什么是类路径和默认包 144
8.5.4包的作用域 144
8.6注释及嵌入文档 145
8.6.1如何添加注释 145
8.6.2类、方法等注释的方法 145
8.7常见疑难解答 146
8.7.1包在实际编程中究竟有什么作用 146
8.7.2访问控制符在实际开发中有什么作用 146
8.7.3一个文件中定义了两个class类是否生成一个.class文件 146
8.8小结 146
8.9习题 146
第9章 继承 147
9.1什么是继承 147
9.1.1继承的引出 147
9.1.2继承的概念 147
9.2如何实现继承 149
9.3构造器的使用 150
9.3.1什么是构造器 150
9.3.2继承中构造器的初始化 151
9.3.3替代父类和本身的方式 152
9.3.4 Java中的单继承性 153
9.4继承中的覆盖现象 153
9.5类之间的关系 154
9.5.1依赖 154
9.5.2聚合 154
9.5.3继承 155
9.6继承层次图 155
9.7如何设计好继承 155
9.8常见疑难解答 155
9.8.1 Java不支持多继承,如何处理一个类继承多个父类的情况 155
9.8.2如果出现了带参数的构造器,可否不在代码中写出来 156
9.9小结 156
9.10习题 156
第10章 多态 157
10.1多态的产生 157
10.2多态的概念 159
10.2.1使用多态编写程序 159
10.2.2覆盖的应用 160
10.2.3重载与覆盖的实例对比 161
10.2.4覆盖的多态性 162
10.2.5传值引用和传址引用 164
10.3通过实例熟悉多态用法 165
10.4绑定 168
10.4.1静态绑定 168
10.4.2动态绑定 168
10.5超类 168
10.5.1什么是超类 168
10.5.2 equals方法的使用 169
10.5.3通用编程 169
10.6常见疑难解答 169
10.6.1动态和静态编译是什么 169
10.6.2绑定与多态的联系是什么 169
10.6.3多态与重载的区别是什么 170
10.7小结 170
10.8习题 170
第11章 接口与内部类 171
11.1接口 171
11.1.1接口概念的引入 171
11.1.2接口的概念 171
11.1.3接口的声明 172
11.1.4接口的实现 172
11.1.5接口的多重实现 178
11.1.6接口的属性 184
11.1.7接口的继承 184
11.1.8接口的意义 189
11.2内部类 190
11.2.1使用内部类来访问对象 190
11.2.2局部内部类 193
11.2.3静态内部类 196
11.2.4匿名内部类 196
11.3常见疑难解答 196
11.3.1匿名类如何在程序中使用 196
11.3.2接口与继承有什么区别 196
11.4小结 196
11.5习题 197
第12章 抽象 198
12.1抽象的概念 198
12.1.1什么是抽象 198
12.1.2抽象的综合实例 199
12.2抽象类 202
12.2.1什么是抽象类 202
12.2.2抽象类的实例 202
12.3抽象与接口的区别 208
12.4常见疑难解答 208
12.4.1抽象类和接口在概念上有什么区别 208
12.4.2如何从设计理念上看待抽象类和接口 208
12.5小结 211
12.6习题 211
第13章 线程 212
13.1线程的概念 212
13.1.1进程及其使用环境 212
13.1.2线程及其使用环境 212
13.2线程的创建 212
13.2.1如何创建线程 213
13.2.2通过实例熟悉如何创建线程 216
13.3线程的使用 220
13.3.1线程的优先级 220
13.3.2线程的休眠与唤醒 222
13.3.3线程让步 227
13.3.4线程同步 229
13.4实例分析 236
13.4.1生产者与消费者的模拟程序设计及分析 236
13.4.2多消费者的模拟程序设计及分析 239
13.4.3多生产者的模拟程序设计及分析 242
13.5常见疑难解答 248
13.5.1 Java中线程与线程之间怎么通信 248
13.5.2什么是进程的死锁和饥饿 248
13.5.3什么时候会涉及线程程序 249
13.6小结 249
13.7习题 249
第14章封装 250
14.1封装简介 250
14.2在程序设计中为什么要使用封装 253
14.3结合实例讲述如何设计封装 255
14.4在程序设计中设计封装的注意点 260
14.5常见疑难解答 261
14.5.1封装在现实开发中给程序员带来什么启发 261
14.5.2封装在实际开发中的应用有哪些 261
14.6小结 262
14.7习题 262
第三篇Java程序设计数据处理篇 263
第15章Java输入与输出(I/O) 263
15.1输入与输出的重要性 263
15.2 Java有哪些重要的输入/输出类 264
15.3文件或目录信息的处理——File类 264
15.3.1 File常用的操作方法 264
15.3.2文件处理方法的应用 265
15.3.3文件和目录的完全处理 266
15.4读取数据的媒介之一——流(stream) 268
15.4.1什么是流 268
15.4.2什么是输入流和输出流 268
15.4.3字节输入流及输出流 269
15.4.4使用文件字节输入流读取文件 269
15.4.5使用文件字节输出流输出文件 271
15.5多字节数据读取类——Filter类 273
15.5.1 Filter流的概念 273
15.5.2处理字节类型外的文件流 273
15.5.3字节类型外的文件输出 274
15.5.4增强的多字节输出流DataOutput 274
15.5.5增强的多字节输入流DataInput 275
15.6读取数据的媒介之二——字符流(character stream) 279
15.6.1字符流的概念 279
15.6.2抽象字符输入流Reader类的使用 279
15.6.3抽象字符输出流Writer类的使用 279
15.6.4读取带缓存的BufferedReader字符流 279
15.6.5带缓存的字符输出流BufferedWriter类 281
15.6.6字符输入流FileReader类和输出流FileWriter类的使用 284
15.6.7如何用标准输入流System.in来获取数据 286
15.6.8打印输入流PrintWriter类与PrintStream类的区别 286
15.6.9随机文件访问RandomAccessFile类的使用 288
15.7利用对象序列化控制输入/输出 291
15.7.1什么是对象序列化 291
15.7.2基本数据和对象数据读写ObjectInput接口与ObjectOutput接口 291
15.7.3对象序列化处理ObjectOutputStream类的使用 292
15.7.4对象序列化处理ObjectInputStream类的使用 293
15.8常见疑难解答 294
15.8.1字节流与字符流主要的区别 294
15.8.2输入流与输出流如何区分,各有什么作用 294
15.8.3什么是管道流 295
15.9小结 295
15.10习题 295
第16章 异常与处理及内存管理 296
16.1异常的概念 296
16.1.1异常的分类 296
16.1.2异常的声明 297
16.1.3异常的抛出 298
16.2异常的捕获 300
16.2.1捕获多个异常 300
16.2.2自定义异常 302
16.3内存的管理和回收 303
16.4常见疑难解答 305
16.4.1为什么要声明方法抛出异常 305
16.4.2为什么抛出的异常一定是已检查异常 305
16.5小结 305
16.6习题 305
第17章Java中对数据的处理 306
17.1如何将基本数据类型转换为对象 306
17.1.1为什么要将基本数据转换为对象 306
17.1.2 Wrapper类的构造函数 307
17.1.3 Wrapper类的常用函数 308
17.2如何处理随机性的数据 310
17.2.1 Random类的使用场合 311
17.2.2通过实例熟悉Random类的常用方法 311
17.3如何对数据进行排列、整理 314
17.3.1 Arrays类的常用方法 314
17.3.2实例分析 316
17.4常见疑难解答 320
17.4.1 Random类函数在现实生活中有什么用处 320
17.4.2数组的排列和整理数据在实际应用中有什么用处 320
17.5小结 320
17.6习题 320
第四篇Java数据结构 321
第18章 数据结构的接口 321
18.1数据结构接口及实现 321
18.1.1数据结构接口的实质 321
18.1.2用实例来熟悉数据结构接口的实现 322
18.2 Collection集合接口与Iterator迭代器接口 323
18.2.1熟悉Collection集合接口 323
18.2.2 List链表接口和Set接口 324
18.2.3 Map映射接口 325
18.2.4 Iterator迭代器接口 326
18.2.5通过实例来认识迭代器的实现 327
18.3常见疑难解答 329
18.3.1 Collection集合接口和Collections集合类的区别 329
18.3.2 ArrayList数组列表类和Vector存储类的区别 329
18.3.3 HashMap哈希映射和Hashtable哈希表的区别 329
18.3.4数据结构的种类有哪些 330
18.3.5 List链表接口和Set接口的区别 330
18.4小结 330
18.5习题 330
第19章Java中的数据结构 331
19.1链表 331
19.1.1什么是Java中的链表 331
19.1.2用程序代码段实现对链表的添加 332
19.1.3用程序代码段实现对链表的删除 334
19.2数组列表类 338
19.2.1什么是数组列表类 338
19.2.2通过实例熟悉数组列表如何存储数据 339
19.3散列表 343
19.3.1什么是散列表 343
19.3.2通过实例熟悉散列表如何存储数据 344
19.4散列集 348
19.4.1什么是散列集 348
19.4.2通过实例熟悉散列集如何存储数据 349
19.5树集 354
19.5.1什么是树集 354
19.5.2通过实例熟悉树集如何存储数据 355
19.6映像 359
19.6.1什么是映像 359
19.6.2通过实例熟悉映像如何存储数据 360
19.7枚举 364
19.8属性集 364
19.9常见疑难解答 365
19.9.1哪些是线程安全的数据结构 365
19.9.2 Vector是什么样的数据结构 365
19.10小结 366
19.11习题 366
第20章XML基础 367
20.1 XML的产生及与HTML的比较 367
20.2 XML的编辑工具 368
20.3 XML文档 369
20.3.1 XML的声明 369
20.3.2文档类型的声明 370
20.3.3元素 370
20.3.4注释 372
20.3.5处理指令 372
20.3.6空白处理 372
20.3.7行尾处理 372
20.3.8语言标识 372
20.3.9一个简单的有关XML的实例 372
20.4格式良好的XML 373
20.5什么是DTD 374
20.5.1在XML文档中加入DTD 374
20.5.2 DTD的结构 375
20.5.3几个简单有关DTD的实例 377
20.6有效的XML 379
20.7 XML处理器/解析器 379
20.8常见疑难解答 380
20.8.1 XML与HTML的区别 380
20.8.2 XML有哪些显示数据的方式 380
20.9小结 380
20.10习题 380
第五篇Java高级应用篇 381
第21章JDBC及其应用 381
21.1数据库基础知识 381
21.1.1什么是数据库 381
21.1.2数据库的分类及功能 382
21.1.3关系数据库的设计 382
21.1.4数据库设计技巧 383
21.2 JDBC的概念 384
21.2.1 什么是JDBC 384
21.2.2 JDBC驱动程序的分类 384
21.2.3 JDBC的用处 385
21.3 SQL数据库技术 386
21.3.1什么是SQL数据库 386
21.3.2如何操作SQL数据库 386
21.3.3安装SQL Server 2005 387
21.3.4使用SQL创建数据库 391
21.4 JDBC基本编程 392
21.4.1如何建立数据库 392
21.4.2如何操作数据库 394
21.4.3高级SQL类型 400
21.5事务处理 400
21.5.1什么是事务处理 400
21.5.2事务处理的过程演练 401
21.6预查询 403
21.7常见疑难解答 404
21.7.1操作数据库的具体步骤是什么 404
21.7.2数据库中的视图、图表、默认值、规则、触发器、存储过程的意义 405
21.8小结 405
21.9习题 406
第22章Swing组件与布局管理器 407
22.1什么是Swing编程 407
22.2 MVC设计模式基础 407
22.3简单框架设计及实例 408
22.3.1创建一个空白的框架 408
22.3.2创建框架的其他工作 409
22.4简单图形按钮控件的设计及实例 410
22.4.1 Swing中的按钮控件 410
22.4.2按钮的模型 411
22.4.3添加按钮 411
22.4.4如何添加单选按钮 412
22.4.5复选按钮 414
22.4.6 ToggleButton按钮 415
22.5简单文本输入组件的设计及实例 416
22.5.1文本域的设计 417
22.5.2密码域的设计 418
22.5.3如何设计文本区 419
22.6标签组件的设计及实例 420
22.7选择组件的设计及实例 421
22.8菜单的组件设计 422
22.9对话框的种类及用法 424
22.10复杂布局管理器的种类及用法 425
22.10.1箱式布局的设计 425
22.10.2网格组布局的设计 427
22.11通过实例熟悉Swing编程 428
22.12常见疑难解答 431
22.12.1如何处理菜单的启用和禁用功能 431
22.12.2如何编写快捷键的程序 431
22.13小结 431
22.14习题 432
第23章Eclipse的使用 433
23.1 Eclipse简介 433
23.2 Eclipse界面简介 434
23.3如何使用Eclipse进行开发 435
23.3.1如何新建一个Java工程 435
23.3.2如何新建一个Java的类 436
23.3.3编写代码 437
23.4常见疑难解答 439
23.4.1 Eclipse和UltraEdit两个开发工具的优缺点 439
23.4.2什么是IDE环境 440
23.4.3 Eclipse与JBuilder两个开发工具哪个好 440
23.4.4有关Eclipse的编译报错的原因 440
23.5小结 440
23.6习题 440
第六篇Java程序设计网络篇 441
第24章Applet设计 441
24.1 Applet的基本概念及生命周期 441
24.2 Applet的多媒体处理 443
24.2.1声音处理 443
24.2.2图像处理 444
24.3浏览器与Applet的设计 445
24.3.1如何将Applet嵌入浏览器 445
24.3.2如何使用Applet类编程 446
24.3.3如何用Applet控制浏览器 447
24.4 Applet的安全 448
24.5一个Applet的综合实例分析 449
24.6常见疑难解答 449
24.6.1浏览器如何运行Applet 449
24.6.2有关Applet无法在IE中显示的问题 450
24.7小结 450
24.8习题 450
第25章 网络编程基础 451
25.1网络基础知识 451
25.2 TCP与UDP 451
25.3端口与套接字 452
25.4 TCP程序设计基础 452
25.4.1如何设计TCP的程序 452
25.4.2一个简单的例子 455
25.5 UDP程序设计基础 456
25.5.1如何设计UDP的程序 456
25.5.2一个简单的例子 456
25.6如何设计网络程序 457
25.6.1单向通信综合实例 457
25.6.2双向通信综合实例 461
25.7常见疑难解答 464
25.7.1 TCP和UDP的区别 464
25.7.2什么是TCP/IP协议,分为几层,有什么功能 465
25.7.3什么是IP协议,IP地址如何表示,分为几类,各有什么特点 465
25.8小结 466
25.9习题 466
第七篇Java程序设计综合实例 467
第26章 学校管理系统 467
26.1模块划分 467
26.2需求分析 468
26.3登录界面的设计 468
26.3.1登录界面的分析 468
26.3.2登录界面的代码实现 468
26.3.3登录界面的测试 471
26.4主界面的设计 472
26.4.1主界面类的分析 472
26.4.2主界面类的代码 472
26.4.3主界面类的实现 481
26.5数据库系统的设计 482
26.5.1数据库的分析 482
26.5.2数据库中表的建立 482
26.5.3数据库中代码段 485
26.6学生信息系统界面的设计 486
26.6.1学生类的设计 486
26.6.2存储类的设计 488
26.6.3学生信息界面的设计 490
26.7教师信息系统界面的设计 498
26.7.1教师类的设计 498
26.7.2存储类的设计 500
26.7.3教师信息界面的设计 503
26.8领导信息系统界面的设计 511
26.8.1领导类的设计 512
26.8.2存储类的设计 513
26.8.3领导信息界面的设计 514
26.9小结 522
第27章 电话单辅助分析工具 523
27.1系统设计 523
27.2系统目标 523
27.2.1文件操作用例 524
27.2.2话单操作用例 524
27.2.3话单维护用例 525
27.3系统功能 525
27.3.1文件操作功能 525
27.3.2话单维护功能 525
27.3.3话单操作功能 525
27.3.4系统维护功能 526
27.4业务流程 526
27.4.1文件操作流程 526
27.4.2话单维护流程 526
27.4.3话单操作流程 526
27.5软件模块设计 526
27.5.1主界面模块 526
27.5.2文件操作模块 530
27.5.3话单操作模块 536
27.5.4话单维护模块 545
27.6软件打包发行 549
27.7数据库配置 552
27.8小结 552