目录
第1部分  Java基础程序设计
第1章  Java概述及开发环境搭建 2
视频讲解:35分钟
1.1  认识Java 2
1.1.1  什么是Java 2
1.1.2  Java语言的特点 3
1.1.3  Java程序的运行机制和Java
虚拟机 5
1.2  Java开发环境搭建 6
1.2.1  JDK的安装与配置 7
1.2.2  编写第1个Java程序 8
1.2.3  classpath属性的作用 9
1.3  本章要点 10
1.4  习题 10
第2章  简单的Java程序 11
视频讲解:20分钟
2.1  一个简单的Java范例 11
2.2  Java程序的注释 13
2.3  Java中的标识符 13
2.4  Java中的关键字 14
2.5  变量和常量 14
2.6  本章要点 15
2.7  习题 15
第3章  Java基础程序设计 16
视频讲解:2小时09分钟
3.1  数据类型划分 16
3.2  基本数据类型 17
3.2.1  整数类型 17
3.2.2  数据的溢出 18
3.2.3  字符类型 19
3.2.4  浮点数类型与双精度浮
点数类型 21
3.2.5  布尔类型 22
3.2.6  基本数据类型的默认值 22
3.3  数据类型的转换 23
3.3.1  数据类型的自动转换 23
3.3.2  数据类型的强制转换 25
3.4  运算符、表达式与语句 26
3.4.1  运算符 26
3.4.2  简洁表达式 41
3.5  选择与循环语句 43
3.5.1  程序的结构 43
3.5.2  选择结构 45
3.5.3  循环结构 51
3.5.4  循环的中断 56
3.6  本章要点 58
3.7  习题 59
第4章  数组与方法 60
视频讲解:1小时48分钟
4.1  数组的定义及使用 60
4.1.1  一维数组 60
4.1.2  数组中元素的表示方法 62
4.1.3  数组的静态初始化 65
4.1.4  数组应用范例 66
4.1.5  二维数组 68
4.1.6  多维数组 71
4.2  方法的声明及使用 72
4.2.1  方法的定义 72
4.2.2  方法的重载 74
4.2.3  使用return结束一个方法 76
4.2.4  方法的递归调用 76
4.3  数组的引用传递 77
4.3.1  传递及返回数组 77
4.3.2  范例--数组排序 79
4.3.3  范例--数组复制 81
4.4  Java新特性对数组的支持 82
4.4.1  Java新特性--可变参数 82
4.4.2  Java新特性--foreach
输出 83
4.5  本章要点 84
4.6  习题 84

第2部分  Java面向对象程序设计

第5章  面向对象(基础篇) 88
视频讲解:6小时34分钟
5.1  面向对象的基本概念 88
5.2  类与对象 90
5.2.1  类与对象的关系 90
5.2.2  类的定义 91
5.2.3  对象的创建及使用 92
5.2.4  创建多个对象 94
5.3  封装性 98
5.4  构造方法 102
5.5  匿名对象 106
5.6  实例讲解--类设计分析 107
5.7  String 111
5.7.1  实例化String对象 111
5.7.2  String的内容比较 112
5.7.3  String两种实例化方式的
区别 114
5.7.4  字符串的内容不可改变 116
5.7.5  String类中常用方法 117
5.8  引用传递及基本应用 123
5.8.1  引用传递 123
5.8.2  接收本类的引用 126
5.8.3  范例--一对一关系 127
5.8.4  范例--进一步深入
一对一关系 129
5.9  this关键字 131
5.9.1  使用this调用本类中的
属性 131
5.9.2  使用this调用构造方法 134
5.9.3  this表示当前对象 136
5.10  static关键字 140
5.10.1  使用static声明属性 140
5.10.2  使用static声明方法 143
5.10.3  static的相关应用 145
5.10.4  理解main方法 146
5.11  代码块 148
5.11.1  普通代码块 148
5.11.2  构造块 148
5.11.3  静态代码块 149
5.12  构造方法私有化 151
5.12.1  问题的引出 151
5.12.2  问题的解决 152
5.12.3  程序的意义 153
5.13  对象数组 154
5.14  内部类 156
5.14.1  内部类的基本定义 156
5.14.2  使用static定义内部类 157
5.14.3  在外部访问内部类 158
5.14.4  在方法中定义内部类 159
5.15  实例讲解 160
5.15.1  系统登录 160
5.15.2  单向链表实现(1) 163
5.15.3  单向链表实现(2) 165
5.16  本章要点 168
5.17  习题 168
第6章  面向对象(高级篇) 170
视频讲解:4小时20分钟
6.1  继承的基本概念 170
6.2  继承的进一步研究 176
6.2.1  子类对象的实例化过程 176
6.2.2  方法的覆写 178
6.2.3  super关键字的作用 182
6.3  范例--继承的应用 183
6.4  final关键字 186
6.5  抽象类的基本概念 187
6.6  接口的基本概念 192
6.7  对象的多态性 197
6.8  instanceof关键字 202
6.9  抽象类与接口的应用 204
6.9.1  为抽象类与接口实例化 204
6.9.2  抽象类的实际应用--模板
设计 206
6.9.3  接口的实际应用--制定
标准 208
6.9.4  设计模式--工厂设计 209
6.9.5  设计模式--代理设计 213
6.9.6  设计模式--适配器设计 214
6.9.7  内部类的扩展 216
6.9.8  抽象类与接口之间的关系 217
6.10  实例分析:宠物商店 218
6.11  Object类 224
6.11.1  基本作用 224
6.11.2  主要方法 224
6.11.3  接收任意引用类型的对象 227
6.12  包装类 228
6.12.1  包装类介绍 228
6.12.2  装箱与拆箱 229
6.12.3  包装类应用 230
6.13  匿名内部类 231
6.14  本章要点 233
6.15  习题 234

第7章  异常的捕获及处理 235
视频讲解:1小时18分钟
7.1  异常的基本概念 235
7.1.1  为什么需要异常处理 235
7.1.2  在程序中使用异常处理 236
7.1.3  异常类的继承结构 241
7.1.4  Java的异常处理机制 242
7.2  throws与throw关键字 245
7.2.1  throws关键字 245
7.2.2  throw关键字 246
7.2.3  范例--throw与throws的
应用 247
7.3  Exception类与Runtime
Exception类 248
7.4  自定义异常类 249
7.5  断言 250
7.6  本章要点 251
7.7  习题 251
第8章  包及访问控制权限 252
视频讲解:55分钟
8.1  包的概念及使用 252
8.1.1  包的基本概念 252
8.1.2  import语句 254
8.1.3  系统常见包 257
8.1.4  Java新特性--静态
导入 258
8.2  jar命令的使用 259
8.3  访问控制权限 261
8.4  Java命名规范 263
8.5  本章要点 263
8.6  习题 263

第3部分  Java应用程序设计

第9章  多线程 266
视频讲解:2小时36分钟
9.1  进程与线程 266
9.2  Java中线程的实现 267
9.2.1  继承Thread类 267
9.2.2  实现Runnable接口 271
9.2.3  Thread类和Runnable接口 273
9.3  线程的状态 276
9.4  线程操作的相关方法 277
9.4.1  取得和设置线程名称 277
9.4.2  判断线程是否启动 280
9.4.3  线程的强制运行 281
9.4.4  线程的休眠 282
9.4.5  中断线程 282
9.4.6  后台线程 283
9.4.7  线程的优先级 284
9.4.8  线程的礼让 286
9.5  线程操作范例 287
9.5.1  实现一--继承Thread类 287
9.5.2  实现二--实现Runnable
接口 288
9.6  同步与死锁 289
9.6.1  问题的引出 289
9.6.2  使用同步解决问题 291
9.6.3  死锁 293
9.7  线程操作案例--生产者及
消费者 296
9.7.1  程序的基本实现 296
9.7.2  问题解决1--加入同步 299
9.7.3  Object类对线程的支持--等
待与唤醒 301
9.7.4  问题解决2--加入等待
与唤醒 302
9.8  线程的生命周期 303
9.9  本章要点 305
9.10  习题 306
第10章  泛型 307
视频讲解:1小时52分钟
10.1  为什么要使用泛型 307
10.2  泛型应用 310
10.2.1  泛型的基本应用 310
10.2.2  使用泛型修改代码 313
10.2.3  泛型应用中的构造方法 314
10.2.4  指定多个泛型类型 315
10.3  泛型的安全警告 316
10.4  通配符 318
10.4.1  匹配任意类型的通配符 318
10.4.2  受限泛型 320
10.5  泛型与子类继承的限制 323
10.6  泛型接口 324
10.6.1  定义泛型接口 324
10.6.2  泛型接口的两种实现方式 325
10.7  泛型方法 326
10.7.1  定义泛型方法 327
10.7.2  通过泛型方法返回泛型类
实例 327
10.7.3  使用泛型统一传入的参数
类型 328
10.8  泛型数组 329
10.9  泛型的嵌套设置 330
10.10  范例--泛型应用 331
10.11  本章要点 335
10.12  习题 335
第11章  Java常用类库 336
视频讲解:5小时38分钟
11.1  StringBuffer类 336
11.1.1  认识StringBuffer类 336
11.1.2  StringBuffer类的应用 341
11.2  Runtime类 342
11.2.1  认识Runtime类 342
11.2.2  得到JVM的内存空间信息 343
11.2.3  Runtime类与Process类 344
11.3  国际化程序 345
11.3.1  国际化程序的实现思路 345
11.3.2  Locale类 346
11.3.3  ResourceBundle类 347
11.3.4  Java国际化程序实现 348
11.3.5  处理动态文本 349
11.3.6  使用类代替资源文件 352
11.4  System类 353
11.4.1  认识System类 353
11.4.2  垃圾对象的回收 356
11.4.3  对象的生命周期 358
11.5  日期操作类 358
11.5.1  Date类 358
11.5.2  Calendar类 359
11.5.3  DateFormat类 360
11.5.4  SimpleDateFormat类 362
11.5.5  实例操作--取得完整
日期 364
11.6  Math类 367
11.7  Random类 368
11.8  NumberFormat类 369
11.8.1  NumberFormat类的基本
使用 369
11.8.2  DecimalFormat类 370
11.9  BigInteger类 371
11.10  BigDecimal类 373
11.11  对象克隆技术 374
11.12  Arrays类 375
11.13  Comparable接口 377
11.13.1  比较器的基本应用 377
11.13.2  分析比较器的排序原理 379
11.14  另一种比较器Comparator 381
11.15  观察者设计模式 384
11.15.1  什么叫观察者 384
11.15.2  观察者模式实现 384
11.16  正则表达式 386
11.16.1  认识正则表达式 386
11.16.2  Pattern类和Matcher类 387
11.16.3  String类对正则表达式的
支持 390
11.17  定时调度 392
11.17.1  Timer类 392
11.17.2  TimerTask类 393
11.17.3  范例--定时操作 394
11.18  本章要点 395
11.19  习题 395
第12章  Java IO 397
视频讲解:7小时52分钟
12.1  操作文件的类--File 397
12.1.1  File类的基本介绍 397
12.1.2  使用File类操作文件 398
12.1.3  范例--列出指定目录
的全部内容 404
12.2  RandomAccessFile类 405
12.2.1  使用RandomAccessFile
类写入数据 406
12.2.2  使用RandomAccessFile
类读取数据 407
12.3  字节流与字符流基本操作 408
12.3.1  字节流 409
12.3.2  字符流 417
12.3.3  字节流与字符流的区别 422
12.3.4  范例--文件复制 425
12.4  转换流--OutputStreamWriter
类与InputStreamReader类 427
12.5  内存操作流 429
12.6  管道流 431
12.7  打印流 433
12.7.1  打印流的基本操作 433
12.7.2  使用打印流进行格式化 434
12.8  System类对IO的支持 435
12.8.1  System.out 436
12.8.2  System.err 437
12.8.3  System.in 438
12.8.4  输入/输出重定向 440
12.9  BufferedReader类 443
12.9.1  键盘输入数据的标准格式 444
12.9.2  相关操作实例 445
12.10  Scanner类 452
12.10.1  Scanner类简介 452
12.10.2  使用Scanner类输入数据 453
12.11  数据操作流 456
12.11.1  DataOutputStream类 457
12.11.2  DataInputStream类 458
12.12  合并流 460
12.13  压缩流 461
12.13.1  ZIP压缩输入/输出流简介 461
12.13.2  ZipOutputStream类 462
12.13.3  ZipFile类 466
12.13.4  ZipInputStream类 468
12.14  回退流 470
12.15  字符编码 472
12.15.1  Java常见编码简介 472
12.15.2  得到本机的编码显示 473
12.15.3  乱码产生 473
12.16  对象序列化 474
12.16.1  基本概念与Serializable
接口 474
12.16.2  对象输出流
ObjectOutputStream 475
12.16.3  对象输入流
ObjectInputStream 477
12.16.4  Externalizable接口 478
12.16.5  transient关键字 480
12.16.6  序列化一组对象 482
12.17  实例操作--单人信息管理
程序 483
12.18  本章要点 487
12.19  习题 488
第13章  Java类集 491
视频讲解:3小时50分钟
13.1  认识类集 491
13.1.1  基本概念 491
13.1.2  类集框架主要接口 492
13.2  Collection接口 493
13.2.1  Collection接口的定义 493
13.2.2  Collection子接口的定义 494
13.3  List接口 494
13.3.1  List接口的定义 494
13.3.2  List接口的常用子类 495
13.4  Set接口 504
13.4.1  Set接口的定义 504
13.4.2  Set接口的常用子类 505
13.5  SortedSet接口 512
13.6  集合的输出 513
13.6.1  迭代输出:Iterator 513
13.6.2  双向迭代输出:ListIterator 516
13.6.3  Java新支持:foreach 519
13.6.4  废弃的接口:Enumeration 520
13.7  Map接口 521
13.7.1  Map接口简介 521
13.7.2  Map.Entry接口简介 522
13.7.3  Map接口的常用子类 522
13.7.4  Map接口的使用注意事项 529
13.7.5  key可以重复的Map集合:
IdentityHashMap 535
13.8  SortedMap接口 537
13.9  集合工具类:Collections 539
13.9.1  Collections简介 539
13.9.2  Collections操作实例 540
13.10  其他集合类 545
13.10.1  Stack类 545
13.10.2  属性类:Properties 546
13.11  范例 551
13.11.1  范例--一对多关系 551
13.11.2  范例--多对多关系 553
13.12  本章要点 557
13.13  习题 558
第14章  枚举 559
视频讲解:55分钟
14.1  枚举类型简介 559
14.2  使用简单程序完成枚举的
功能 559
14.3  定义一个枚举类型 561
14.4  Enum 563
14.4.1  取得枚举的信息 564
14.4.2  为每一个枚举对象属性
赋值 565
14.4.3  使用比较器 567
14.5  类集对枚举的支持--
EnumMap、EnumSet 568
14.5.1  EnumMap 568
14.5.2  EnumSet 569
14.6  让枚举类实现一个接口 573
14.7  在枚举类中定义抽象方法 574
14.8  本章要点 575
14.9  习题 576
第15章  Java反射机制 577
视频讲解:2小时24分钟
15.1  认识Class类 577
15.2  Class类的使用 580
15.2.1  通过无参构造实例化对象 580
15.2.2  调用有参构造实例化对象 582
15.3  反射的应用--取得类的
结构 585
15.3.1  取得所实现的全部接口 586
15.3.2  取得父类 587
15.3.3  取得全部构造方法 587
15.3.4  取得全部方法 590
15.3.5  取得全部属性 592
15.4  Java反射机制的深入应用 594
15.4.1  通过反射调用类中的方法 594
15.4.2  调用setter及getter方法 596
15.4.3  通过反射操作属性 598
15.4.4  通过反射操作数组 599
15.5  动态代理 602
15.6  类的生命周期 604
15.7  工厂设计模式 605
15.7.1  将反射应用在工厂模式上 605
15.7.2  结合属性文件的工厂模式 606
15.8  本章要点 608
15.9  习题 608
第16章  Annotation 609
视频讲解:1小时19分钟
16.1  Annotation简介 609
16.2  系统内建的Annotation 609
16.2.1  @Override 610
16.2.2  @Deprecated 612
16.2.3  @SuppressWarnings 613
16.3  自定义Annotation 615
16.3.1  Annotation的定义格式 615
16.3.2  Retention和
RetentionPolicy 619
16.4  通过反射取得Annotation 620
16.4.1  范例--取得全部的
Annotation 620
16.4.2  范例--取得指定的
Annotation中的内容 621
16.5  @Target注释 623
16.6  @Documented注释 625
16.7  @Inherited注释 627
16.8  本章要点 628
16.9  习题 629
第17章  Java数据库编程 630
视频讲解:4小时15分钟
17.1  JDBC概述 630
17.1.1  JDBC简介 630
17.1.2  JDBC驱动分类 630
17.1.3  JDBC的主要操作类及
接口 631
17.2  MySQL数据库 632
17.2.1  MySQL简介 632
17.2.2  MySQL安装及配置 633
17.2.3  MySQL常用命令 634
17.3  SQL语法基础 636
17.3.1  MySQL中的数据类型 638
17.3.2  增加数据 639
17.3.3  删除数据 639
17.3.4  更新数据 640
17.3.5  查询数据 640
17.4  JDBC操作步骤 642
17.5  连接数据库 642
17.5.1  配置MySQL数据库的
驱动程序 642
17.5.2  加载驱动程序 643
17.5.3  连接及关闭数据库 644
17.6  执行数据库的更新操作 646
17.6.1  实例操作一--执行
数据库插入操作 647
17.6.2  实例操作二--执行
数据库修改 649
17.6.3  实例操作三--执行数
据库删除操作 650
17.7  ResultSet接口 651
17.8  PreparedStatement接口 654
17.8.1  PreparedStatement简介 654
17.8.2  使用PreparedStatement
执行数据库操作 655
17.9  处理大数据对象 659
17.9.1  处理CLOB数据 660
17.9.2  处理BLOB数据 665
17.10  CallableStatement接口 669
17.11  JDBC 2.0操作 671
17.11.1  可滚动的结果集 672
17.11.2  使用结果集插入数据 675
17.11.3  使用结果集更新数据 676
17.11.4  使用结果集删除数据 678
17.11.5  批处理 679
17.12  事务处理 680
17.12.1  MySQL对事务的支持 681
17.12.2  执行JDBC的事务处理 682
17.13  使用元数据分析数据库 686
17.13.1  DatabaseMetaData 686
17.13.2  ResultSetMetaData 688
17.14  使用JDBC连接Oracle数
据库 689
17.15  本章要点 691
17.16  习题 692
第18章  图形界面 693
视频讲解:6小时15分钟
18.1  AWT简介 693
18.1.1  组件 694
18.1.2  容器 695
18.1.3  布局管理器 695
18.2  Swing简介 695
18.3  基本容器:JFrame 696
18.4  标签组件:JLabel 699
18.4.1  认识JLabel 699
18.4.2  更改JLabel的文字样式 700
18.4.3  在JLabel中设置图片 702
18.5  按钮组件:JButton 704
18.6  布局管理器 706
18.6.1  FlowLayout 706
18.6.2  BorderLayout 707
18.6.3  GridLayout 708
18.6.4  CardLayout 710
18.6.5  绝对定位 711
18.7  其他容器 712
18.7.1  JPanel 712
18.7.2  JSplitPane 713
18.7.3  JTabbedPane 715
18.7.4  JScrollPane 717
18.7.5  JDesktopPane与
JInternalFrame 718
18.8  不弹起的按钮组件:
JToggleButton 720
18.9  文本组件:
JTextComponent 721
18.9.1  单行文本输入组件:
JTextField 722
18.9.2  密文输入组件:
JPasswordField 724
18.9.3  多行文本输入组件:
JTextArea 725
18.10  事件处理 727
18.10.1  事件和监听器 727
18.10.2  窗体事件 728
18.10.3  监听适配器 730
18.10.4  动作事件及监听处理 731
18.10.5  键盘事件及监听处理 737
18.10.6  鼠标事件及监听处理 740
18.10.7  鼠标拖拽事件及监听处理 743
18.11  单选按钮:JRadioButton 745
18.11.1  认识JRadioButton 745
18.11.2  JRadioButton事件处理 747
18.12  复选框:JCheckBox 749
18.12.1  认识JCheckBox 749
18.12.2  JCheckBox事件处理 751
18.13  列表框:JList 753
18.13.1  认识JList 753
18.13.2  使用ListModel构造
JList 755
18.13.3  JList事件处理 757
18.14  下拉列表框:JComboBox 759
18.14.1  认识JComboBox 759
18.14.2  使用ComboBoxModel
构造JComboBox 761
18.14.3  JComboBox事件处理 763
18.15  菜单组件 765
18.15.1  JMenu与JMenuBar 765
18.15.2  JMenuItem 767
18.15.3  事件处理 769
18.16  文件选择框:JFileChooser 772
18.17  表格 776
18.17.1  JTable 776
18.17.2  使用TableModel构建
表格 777
18.18  本章要点 783
18.19  习题 784
第19章  Java网络编程 785
视频讲解:1小时08分钟
19.1  IP(Internet Protocol)与
InetAddress 785
19.1.1  IP地址(Internet Protocol)
简介 785
19.1.2  InetAddress 786
19.2  URL与URLConnection 787
19.2.1  URL 787
19.2.2  URLConnection 788
19.3  URLEncoder与
URLDecoder 789
19.4  TCP程序设计 790
19.4.1  ServerSocket类与
Socket类 790
19.4.2  第一个TCP程序 791
19.4.3  案例:Echo程序 793
19.4.4  在服务器上应用多线程 796
19.5  UDP程序设计 797
19.5.1  UDP简介 797
19.5.2  UDP程序实现 798
19.6  本章要点 800
19.7  习题 800
第20章  Java新IO 801
视频讲解:1小时33分钟
20.1  Java新IO简介 801
20.2  缓冲区与Buffer 802
20.2.1  Buffer的基本操作 802
20.2.2  深入缓冲区操作 804
20.2.3  创建子缓冲区 805
20.2.4  创建只读缓冲区 806
20.2.5  创建直接缓冲区 807
20.3  通道 808
20.3.1  FileChannel 808
20.3.2  内存映射 810
20.4  文件锁:FileLock 812
20.5  字符集:Charset 813
20.6  Selector 816
20.7  本章要点 819
第21章  Eclipse开发工具 821
视频讲解:1小时35分钟
21.1  Eclipse简介 821
21.2  使用Eclipse 822
21.3  开发Java程序 823
21.4  JUnit测试工具 825
21.5  CVS客户端的配置 828
21.5.1  CVS服务器端配置 828
21.5.2  在Eclipse中连接CVS 830
21.6  本章要点 831
参考文献 832