目录 1
前言 1
第1章 多线程 1
1.1 什么是线程 2
1.1.1使用线程为其他任务提供机会 7
1.1.2运行和启动线程 8
1.1.3运行多个线程 13
1.1.4 Runnable接口 14
1.2线程的中断 16
1.3线程的属性 18
1.3.1线程的状态 18
1.3.2退出中断状态 20
1.3.3死线程 21
1.3.4守护线程 21
1.3.5线程组 22
1.4线程的优先级 24
1.5利己线程 31
1.6同步 37
1.6.1不同步的线程通信 37
1.6.2对共享资源的访问实施同步 41
1.6.3对象锁 45
1.6.4wait和notify方法 46
1.6.5同步块 51
1.6.6同步静态方法 52
1.7死锁 53
1.7.1为什么要废除stop和suspend方法 55
1.7.2超时 59
1.8用线程进行用户界面编程 61
1.8.1线程与Swing 61
1.8.2动画 69
1.8.3定时器 73
1.8.4进度栏 77
1.8.5进度监视器 81
1.8.6监视输入数据流的进度 85
1.9将管道用于线程间的通信 91
第2章集合 96
2.1集合接口 96
2.1.1将集合接口与实现方法分开 97
2.1.2 Java库中的集合接口与迭代器接口 99
2.2具体的集合 104
2.2.1链接式列表 104
2.2.2数组列表 113
2.2.3散列集 113
2.2.4树集 119
2.2.5映像 125
2.2.6专用的映像类 130
2.3集合框架 133
2.3.1视图与包装器 136
2.3.2批量操作 142
2.3.3与老的API之间的关系 143
2.4算法 144
2.4.1 排序与混排 145
2.4.2对分搜索 148
2.4.3简单算法 149
2.4.4编写你自己的算法 150
2.5旧的集合 152
2.5.1 Hashtable类 152
2.5.2枚举接口 152
2.5.3属性集 153
2.5.4栈 159
2.5.5位集合 160
第3章网络特性 165
3.1连接服务器 165
3.2实现服务器 169
3.3发送e-mail 175
3.4高级套接字编程 180
3.5 URL连接 185
3.5.1 URL与URI 185
3.5.2使用URLConnection来检索信息 187
3.6发送表单数据 196
3.6.1 CGI脚本程序与servlet 196
3.6.2将数据发送给Web服务器 198
3.7接收来自Web的信息 205
3.7.1 applet的安全问题 210
3.7.2代理服务器 213
3.7.3测试天气预报的applet 221
第4章数据库连接:JDBC 223
4.1 JDBC的设计 224
4.2结构化查询语言 227
4.3安装JDBC 232
4.4.1数据库URL 233
4.4 JDBC编程的基本概念 233
4.4.2建立连接 234
4.4.3执行SQL命令 238
4.4.4高级SQL类型(JDBC 2) 239
4.4.5将数据填入数据库 242
4.5执行查询操作 245
4.6可滚动的和可更新的结果集 255
4.6.1可滚动的结果集(JDBC 2) 256
4.6.2可更新的结果集(JDBC 2) 258
4.7元数据 262
4.8事务 271
4.9高级连接管理 274
第5章 远程对象 276
5.1远程方法调用 279
5.1.1代码存根与参数整理 280
5.2.1接口与实现工具 282
5.2准备远程方法调用 282
5.1.2动态类的加载 282
5.2.2查找服务器对象 285
5.2.3客户端 289
5.2.4为应用程序的部署做好准备 293
5.2.5部署程序 296
5 3远程方法中的参数传递 297
5.3.1传递非远程对象 297
5.3.2传递远程对象 308
5.3.3使用集内的远程对象 311
5.3.4远程对象的克隆 312
5.3.5不适合的远程参数 312
5.4使用带有applet的RMI 313
5.5服务器对象的激活 317
5.6 Java IDL和CORBA 323
5.6.1接口定义语言 324
5.6.2 CORBA示例 328
5.6.3实现CORBA服务器 337
第6章高级Swing 343
6.1列表 343
6.1.1 JList组件 343
6.1.2列表模型 348
6.1.3插入和删除值 352
6.1.4值的表示 354
6.2树状结构 359
6.2.1简单的树状结构 360
6.2.2节点的枚举 375
6.2.3表示节点 376
6.2.4监听树事件 383
6.2.5定制树模型 388
6.3表格 396
6.3.1简单的表格 396
6.3.2表格模型 400
6.3.3排序过滤器 410
6.3.4单元格的表示与编辑 417
6.3.5对行和列进行操作 432
6.3.6选定行、列和单元格 433
6.4格式化文本组件 441
6.5组件管理器 447
6.5.1分割窗格 447
6.5.2选项卡窗格 451
6.5.3桌面窗格与内部框 456
6.5.4层叠与平铺 458
6.5.5否决属性的设置 462
第7章高级AWT 474
7.1绘图操作流程 474
7.2形状 476
7.3 区域 491
7.4笔划 495
7.5着色 502
7.6坐标变换 508
7.7剪切 516
7.8透明与组合 520
7.9绘图提示 528
7.10读取和写入图形 534
7.10.1获取用于图形文件类型的阅读器和写入器 534
7.10.2读取和写入带有多个图形的文件 536
7.11图形操作 545
7.11.1访问图形数据 546
7.11.2过滤图形 553
7.12打印 561
7.12.1打印图形 561
7.12.2打印多页文件 571
7.12.3打印预览 572
7.12.4打印服务程序 581
7.12.5数据流打印服务程序 587
7.12.6打印属性 592
7.13剪贴板 599
7.13.1用于数据传递的类与接口 600
7.13.2传递文本 601
7.13.3可传递的接口与数据格式 605
7.13.4建立一个可传递的图形 607
7.13.5使用本地剪贴板传递对象引用 612
7.13.6通过系统剪贴板传递Java对象 618
7.14拖放操作 622
7.14.1放置目标 623
7.14.2拖曳源 632
7.14.3 Swing中对数据传递的支持特性 638
第8章JavaBean 642
8.1为什么要使用bean 642
8.2 bean的编写过程 644
8.3使用bean建立应用程序 647
8.3.1将bean封装在JAR文件中 648
8.3.2在生成器环境中构建bean 649
8.4 bean属性和事件的命名方式 653
8.5 bean属性类型 655
8.5.1简单属性 656
8.5.2带索引的属性 656
8.5.3绑定属性 657
8.5.4约束属性 663
8.6增加定制的bean事件 672
8.7属性编辑器 677
8.8与命名方式相关的问题 698
8.9定制器 706
8.10 bean的运行环境 715
8.10.1自省特性的高级应用 715
8.10.2查找兄弟bean 717
8.10.3使用bean环境的服务 720
第9章安全性 730
9.1类加载器 731
9.2字节码检验 739
9.3安全管理器与访问权限 743
9.3.1 Java 2平台的安全性 745
9.3.2安全策略文件 750
9.3.3定制权限 757
9.3.4实现权限类 758
9.3.5定制安全管理器 764
9.3.6用户身份验证 772
9.4数字签名 778
9.4.1信息摘要 778
9.4.2信息签名 784
9.4.3信息身份验证 790
9.4.4 X.509证书格式 793
9.4.5生成证书 794
9.4.6给证书签名 797
9.5.1给JAR文件签名 804
9.5代码签名 804
9.5.2 部署提示 808
9.5.3软件开发者证书 809
9.6加密 810
9.6.1对称密码 810
9.6.2公共密钥密码 816
9.6.3密码流 821
第10章软件本地化 823
10.1 locale 824
10.2数字与货币 829
10.3日期与时间 835
10.4文本 842
10.4.1排序 842
10.4.2文本边界 849
10.4.3信息的格式化 855
10.4.4选择格式 858
10.4.5字符集转换 862
10.4.6本地化问题和源文件 863
10.5资源包 864
10.5.1查找资源 864
10.5.2将资源放入包中 865
10.6图形用户界面的本地化 869
第11章本机方法 887
11.1用Java编程语言来调用C函数 889
11.2数字参数与返回值 893
11.3字符串参数 895
11.4访问对象字段 900
11.5 方问静态字段 902
11.6签名 905
11.7调用Java方法 907
11.7.1非静态方法 907
11.7.2静态方法 908
11.7.4替代方法调用 909
11.7.3构造器 909
11.8数组 913
11.9错误的处理 917
11.10 API调用 922
11.11访问Windows注册表的完整的示例代码 925
11.11.1 Windows注册表概述 925
11.11.2用于访问注册表的Java平台接口 927
11.11.3将注册表访问函数作为本机方法来实现 928
第12章XML 941
12.1 XML简介 941
12.2分析XML文档 946
12.3文档类型的定义 957
12.4名字空间 976
12.5使用SAX分析器 979
12.6生成XML文档 983
12.7 XSL转换 991