第1章 Java简介 1
1.1编程语言的几个发展阶段 1
1.1.1低级语言 1
1.1.2过程语言 2
1.1.3面向对象编程 3
1.2 Java的诞生 4
1.3 Java的特点 5
1.4安装JDK与JRE 6
1.5 Java程序的开发流程 17
1.5.1 Java程序分类 17
1.5.2 Java源程序结构 17
1.5.3 Java源程序的开发流程 17
1.5.4 Java应用程序开发举例 19
1.5.5 Java小应用程序开发举例 21
1.6 Java的应用领域 24
第2章 标识符、关键字和数据类型 25
2.1标识符 25
2.2关键字 25
2.3 Java的数据类型 26
2.3.1值类型 26
2.3.2引用类型 36
2.4数据类型之间的转换 36
2.4.1同种类型之间的转换 37
2.4.2不同种类型之间的转换 43
第3章 运算符、表达式和语句 44
3.1运算符与表达式 44
3.1.1算术运算符和算术表达式 45
3.1.2位运算符 48
3.1.3关系运算符和关系表达式 50
3.1.4逻辑运算符和逻辑表达式 51
3.1.5条件赋值运算符 53
3.1.6赋值运算符和赋值表达式 54
3.1.7 instanceof运算符 57
3.1.8圆括号与方括号运算符 57
3.1.9运算符的优先级与结合性 58
3.2语句概述 59
3.2.1简单语句 59
3.2.2复合语句 67
3.3条件分支语句 67
3.3.1 if语句 67
3.3.2 switch语句 72
3.4循环语句 74
3.4.1 while语句 75
3.4.2 do-while语句 75
3.4.3 while和do-while语句的区别 77
3.4.4 for语句 78
3.4.5 for-each语句 79
3.5跳转语句 81
3.5.1 break语句 81
3.5.2 continue语句 83
3.5.3 break与continue语句的异同 85
3.5.4 return语句 85
第4章 类和对象 87
4.1类 87
4.1.1类的声明 87
4.1.2类体 88
4.2变量 90
4.2.1变量的数据类型 90
4.2.2成员变量的分类 90
4.2.3变量的作用域 91
4.3方法 92
4.3.1方法的定义 92
4.3.2方法重载 94
4.3.3构造方法 96
4.3.4类方法和实例方法 98
4.3.5变量、方法中值得注意的问题 98
4.4内部类 100
4.4.1静态内部类 100
4.4.2实例内部类 102
4.4.3局部内部类 103
4.4.4匿名内部类 104
4.5对象 104
4.5.1创建对象 104
4.5.2使用对象 109
4.5.3对象的引用和实体 111
4.5.4方法中的参数传值 112
4.6 static关键字 114
4.6.1实例变量与类变量的区别 114
4.6.2实例方法和类方法的区别 116
4.7 this关键字 117
4.7.1在实例方法中使用this 117
4.7.2在构造方法中使用this 118
4.8包及JAR工具 119
4.8.1包 119
4.8.2 JAR工具 122
4.8.3反编译和文档生成器 128
4.9访问权限 130
4.9.1 private(私有的) 130
4.9.2 default(友好的) 132
4.9.3 protected(受保护的) 133
4.9.4 public(公有的) 134
4.9.5公有类与友好类 135
4.10过时信息 136
第5章 继承与多态 138
5.1继承简介 138
5.2类的继承 139
5.2.1继承的语法 139
5.2.2子类的继承性 141
5.3访问权限的进一步说明 144
5.3.1访问权限总结 144
5.3.2 default(友好的) 144
5.3.3 protected(受保护的) 147
5.4成员变量的隐藏与方法重写 152
5.4.1成员变量的隐藏 152
5.4.2方法重写 153
5.4.3方法重写与方法重载的异同 156
5.5 super关键字 157
5.5.1使用关键字super调用父类的构造方法 157
5.5.2使用关键字super操作被隐藏的成员变量和方法 160
5.6 final关键字 161
5.6.1 final变量 161
5.6.2 final方法 164
5.6.3 final类 166
5.7对象的上转型对象 167
5.8多态性 170
5.9 abstract类和abstract方法 171
5.10接口 176
5.10.1接口的定义 176
5.10.2接口的使用 177
5.10.3接口与抽象类的区别 179
5.10.4接口继承 181
5.10.5接口回调 182
5.10.6接口做参数 183
5.11匿名类 185
5.11.1与类有关的匿名类 185
5.11.2与接口有关的匿名类 186
第6章 数组 189
6.1一维数组 189
6.2多维数组 192
6.3数组做参数 195
6.4 Java application命令行参数 200
6.5 Arrays类 202
6.5.1数组的填充和打印 202
6.5.2数组的比较 203
6.5.3数组的排序 204
6.5.4数组的查找 206
6.6数组的复制 207
第7章 基础类与集合类 210
7.1 Obj ect类 210
7.1.1 equals方法 210
7.1.2 toString方法 211
7.1.3 clone方法 213
7.1.4 getClass方法 214
7.2反射类 215
7.2.1获取类的有关信息 216
7.2.2使用Class实例化一个对象 218
7.3封装类 220
7.3.1 Boolean类 220
7.3.2 Byte类 222
7.3.3 Double类 223
7.3.4 Float类 224
7.3.5 Integer类 226
7.3.6 BigInteger类 227
7.3.7 Long类 230
7.3.8 Short类 231
7.3.9 Character类 233
7.4 Math类 234
7.5 String类 238
7.5.1创建String对象 238
7.5.2字符串的常用方法 240
7.6 StringBuffer和StringBuilder类 261
7.7 System类 264
7.8 Date类 265
7.9 Calendar类 267
7.10集合类 270
7.10.1 ArrayList(动态数组) 271
7.10.2 LinkedList(链表) 274
7.10.3 Vector(向量) 277
7.10.4 Stack(栈) 279
7.10.5 HashSet(散列集) 280
7.10.6 Hashtable(散列表) 282
7.10.7 HashMap(散列映射) 284
7.10.8 TreeSet(树集) 286
7.10.9 TreeMap(树映射) 289
第8章 异常处理 291
8.1异常的概念 291
8.2异常的分类 294
8.3异常处理 297
8.3.1 try-catch-finally语句 297
8.3.2 throw与throws关键字 301
8.3.3自定义异常 304
第9章 图形用户界面 306
9.1 AWT 306
9.2 AWT容器类 309
9.2.1 Frame(窗体) 309
9.2.2 Dialog(对话框) 314
9.2.3 Panel(面板) 315
9.2.4 ScrollPane(滚动面板) 316
9.3 AWT基本组件 318
9.3.1 Button(按钮)组件 318
9.3.2 Canvas(画布)组件 321
9.3.3选择型组件 322
9.3.4 Label(标签) 329
9.3.5 Scrollbar(滚动条) 331
9.3.6 TextArea(文本区) 334
9.3.7 TextField(文本框) 336
9.4 AWT Menus 338
9.4.1 MenuBar(菜单条) 338
9.4.2 Menu(菜单) 339
9.4.3 MenuItem(菜单项) 339
9.4.4 CheckBoxMenuItem(复选框菜单项) 340
9.4.5嵌入子菜单 340
9.4.6 PopupMenu(弹出式菜单) 343
9.5组件的外观 345
9.5.1组件的颜色 345
9.5.2组件的字体 346
9.5.3组件的光标 350
第10章 布局管理 353
10.1 BorderLayout(边界、边框布局) 353
10.2 F1owLayout(流/顺序布局) 355
10.3 CardLayout(卡片布局) 358
10.4 GridLayout(网格布局) 362
10.5 BoxLayout(盒式布局) 364
10.5.1 BoxLayout类 364
10.5.2 Box类 365
10.6 null布局(空布局) 367
第11章 事件处理 369
11.1事件处理模型 369
11.1.1几个重要概念 370
11.1.2简单事件处理举例 370
11.2事件的种类 375
11.3事件类型举例 378
11.3.1 ActionEvent 378
11.3.2 AdjustmentEvent 383
11.3.3 AncestorEvent 384
11.3.4 CaretEvent 387
11.3.5 ChangeEvent 388
11.3.6 ComponentEvent 391
11.3.7 ContainerEvent 394
11.3.8 DocumentEvent 396
11.3.9 FocusEvent 398
11.3.10 ItemEvent 402
11.3.11 KeyEvent 404
11.3.12 ListSelectionEvent 413
11.3.13 MouseEvent 414
11.3.14 TableModelEvent 421
11.3.15 TreeExpansionEvent(Tree-ExpansionListener) 422
11.3.16 TreeModelEvent 424
11.3.17 TreeSelectionEvent 428
11.3.18 TreeExpansionEvent(Tree-WillExpandListener) 430
11.3.19 UndoableEditEvent 432
11.3.20 WindowEvent 435
11.4事件适配器 437
11.4.1 ComponentAdapter 438
11.4.2 ContainerAdapter 439
11.4.3 FocusAdapter 440
11.4.4 KeyAdapter 442
11.4.5 MouseInputAdapter 443
11.4.6 MouseAdapter 445
11.4.7 MouseMotionAdapter 446
11.4.8 WindowAdapter 448
11.5处理多事件 450
第12章 Swing组件 456
12.1 Swing Windows 458
12.1.1 JFrame 458
12.1.2对话框 462
12.2 Swing Containers 481
12.2.1 JPanel(面板) 481
12.2.2 JTabbedPane(选项卡面板) 483
12.2.3 JSplitPane(拆分窗口) 487
12.2.4 JScrollPane(滚动面板) 489
12.2.5 JToolBar(工具条) 492
12.2.6 JDesktopPane(桌面面板) 494
12.2.7 JInternalFrame(内部窗体) 496
12.2.8 JLayeredPane(分层面板) 497
12.3 Swing Controls 500
12.3.1按钮 500
12.3.2 JComboBox(下拉列表) 517
12.3.3 JLabel(标签) 520
12.3.4 JList(滚动列表) 523
12.3.5文本组件 528
12.3.6 JProgressBar(进度条) 543
12.3.7 JScrollBar(滚动条) 546
12.3.8 JSlider(滑块) 548
12.3.9 JSpinner(微调控制器) 549
12.3.10 JTable(表格) 552
12.3.11 JTree(树) 556
12.4 Swing Menus 560
12.4.1 JMenuBar(菜单条) 560
12.4.2 JMenu(菜单) 560
12.4.3 JMenuItem(菜单项) 560
12.4.4 JCheckBoxMenuItem(复选菜单项) 561
12.4.5 JRadioButtonMenuItem(单选菜单项) 562
12.4.6 JSeparator(分隔线) 562
12.4.7 JPopupMenu(弹出式菜单) 565
第13章 多线程 568
13.1程序、进程和线程 569
13.2线程的状态与生命周期 569
13.3创建线程 570
13.3.1继承Thread类的方式创建线程 571
13.3.2实现Runnable接口的方式创建线程 575
13.3.3关于两种创建线程方法的讨论 578
13.4线程的常用方法 578
13.4.1设置和获取线程的名字 578
13.4.2返回正在执行的线程 579
13.4.3挂起线程 580
13.4.4中断线程 581
13.4.5终止线程 584
13.4.6检查线程 586
13.4.7线程联合 588
13.4.8守护线程 589
13.5线程调度与优先级 591
13.6共享资源 594
13.6.1线程同步(synchronized) 594
13.6.2等待与通知(wait()、notifay()、notifayAll()) 602
13.6.3死锁 611
13.7计时器线程Timer 615
13.8线程组 618
13.9 GUI线程 619
第14章 输入/输出流 628
14.1输入/输出流的分类 628
14.2 File类 629
14.2.1目录与文件的创建 630
14.2.2目录与文件的删除 633
14.2.3列出目录中指定类型的文件 635
14.2.4运行可执行文件 637
14.3基本字节数据流类 641
14.3.1输入流(InputStream) 641
14.3.2输出流(OutputStream) 643
14.3.3字节数组输入流(ByteArray InputStream、 ByteArrayOut-putStream) 645
14.3.4文件流(FileInputStream、FileOutputStream) 647
14.3.5过滤流(FilterInputStream、FilterOutputStream) 651
14.3.6对象流(ObjectInputStream、Obj ectOutputStream) 662
14.3.7管道流(PipedInputStream、PipedOutputStream) 668
14.3.8 Java I/O库的设计原则 671
14.4字符集的编码 671
14.5基本字符流 673
14.5.1字符流(Reader、 Writer) 674
14.5.2字符输入/输出流(InputStre-amReader、OutputStreamWriter) 674
14.5.3缓冲字符流(BufferedReader、BufferedWriter) 677
14.5.4字符数组流(CharArrayRead-er、CharArrayWriter) 680
14.5.5文件字符流(FileReader、File-Writer) 682
14.6随机访问文件(RandomAccessFile) 685
14.7文件锁FileLock 688
14.8 Process类中的流 691
第15章 Java Applet 696
15.1 Applet类的常用方法 696
15.2 Applet的生命周期 698
15.3 JApplet类 702
15.4 HTML与applet标记 705
15.4.1 applet标记的常用属性 705
15.4.2 applet获取参数 707
15.4.3发送信息到其他applet 710
15.4.4 Applet与URL 716
15.5在Applet中创建线程 720
15.6 Java Applet VS Java Application 725
15.7 applet与多媒体 733
15.7.1在JavaApplet中播放音频 733
15.7.2在Java Application中播放音频 739
15.7.3播放视频 742
第16章 Java 2D图形与图像 750
16.1 Graphics类 750
16.1.1绘制直线 750
16.1.2绘制矩形 752
16.1.3绘制椭圆 753
16.1.4绘制圆弧 755
16.1.5绘制多边形 756
16.2 Graphics2D类 757
16.2.1绘制直线 758
16.2.2绘制曲线 761
16.2.3绘制矩形 765
16.2.4绘制圆角矩形 767
16.2.5绘制椭圆 769
16.2.6绘制圆弧 771
16.2.7绘制任意图形 775
16.2.8图形变换 777
16.2.9构建区域几何形状 778
16.3绘制文本 782
16.4绘制图像 787
16.4.1 Image类 787
16.4.2 BufferedImage类 788
16.4.3 ImageIO类 788
16.4.4在Java Application中绘制图像 789
16.4.5在JavaApplet中绘制图像 792
16.4.6保存图像 793
16.5打印 795
第17章 网络编程 798
17.1计算机网络基础 798
17.1.1 TCP 798
17.1.2 UDP 799
17.1.3 C/S(客户端/服务器) 799
17.1.4 IP地址 799
17.1.5端口 799
17.1.6 JDK中的网络类 800
17.2 URL 800
17.2.1 URL类 801
17.2.2 URLConnection类 804
17.3 InetAddress类 807
17.4 Socket套接字 809
17.4.1 Socket套接字 810
17.4.2 ServerSocket类 810
17.4.3在Socket套接字中使用多线程 816
17.4.4在Applet中使用套接字 821
17.4.5数据压缩与传输 827
17.5 UDP数据报 830
17.5.1将数据打包 831
17.5.2发送与接收数据包 831
17.5.3广播数据报 833
第18章 数据库编程 836
18.1 JDBC简介 836
18.2 SQL Server 2000数据库管理系统 837
18.2.1 SQL Server 2000的安装 837
18.2.2建立数据库 842
18.2.3创建表 844
18.2.4创建表之间的关系 848
18.2.5操作表数据 851
18.3常用SQL Server语句介绍 852
18.3.1创建表 852
18.3.2修改表 852
18.3.3删除表 853
18.3.4 Insert语句(插入数据) 853
18.3.5 Select语句(查询表中的数据) 853
18.3.6 Update语句(更新数据) 855
18.3.7 Delecte语句(删除数据) 855
18.4连接数据库的方式 855
18.4.1 JDBC-ODBC桥 855
18.4.2使用纯Java数据库驱动程序 863
18.5通过DatabaseMetaData了解数据库信息 866
18.6结果集ResultSet对象 870
18.6.1 ResultSet的基本处理方法 870
18.6.2获取结果集的信息 871
18.6.3可滚动结果集 873
18.7 PreparedStatement预编译语句 879
18.8存储过程 881
18.8.1在SQL Server 2000中创建存储过程 881
18.8.2调用存储过程 883
18.8.3在程序中创建存储过程 884
18.9事务处理 886
18.10 JDBC连接其他数据库 888
18.10.1访问Access数据库 888
18.10.2访问MySQL数据库 893
18.10.3访问Oracle数据库 899
参考文献 902