首页>参考读物>计算机科学与技术>软件与程序设计

最新Java 2核心技术,卷II:高级特性(V1.3)5E
作者 : Cay S.Horstmann, Gary Cornell
译者 : 王建华 董志敏 杨保明 等
出版日期 : 2003-01-01
ISBN : 7-111-11381-0
定价 : 108.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 1000
开本 : 16开
原书名 : Core Java 2 Vol II: Advanced Features
原出版社: Prentice Hall
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书是一本供Java编程人员使用的关于Java 2平台(包括JDK 1.3的完整更新版、JDK 1.4版的标准版)的高级参考书,是《最新Java 2核心技术
卷Ⅰ:原理》的姊妹篇。卷Ⅰ介绍Java技术的基本特性,而卷Ⅱ则主要介绍Java技术的高级特性。全书共分12章,各章内容互相独立,读者可以根据自己的需要,参阅你最感兴趣的技术信息。
  本书内容丰富、覆盖面广,极具实用价值。书中大量的实例代码及新增和修改后的特性为Java程序设计员提供了极好的指导。所附光盘包含全套源代码示例程序、Forte for Java 2.0,Community Edition及Java 2 SDK标准版。

图书特色

作者简介:
  Cay S.Horstmann是圣何塞州立大学的计算机学教授。他已经撰写了6本专著,介绍C++、Java技术和面向对象的软件开发;他又是Prentice Hall出版社Core丛书的编辑;他还经常在计算机界的学术会议上发表讲演,是《Java Report》的专栏作家,他还在一家因特网公司中担任过4年的副总裁兼首席技术官,该公司从3个人起家.最后发展成为一家上市公司。
  Gary Corned已经撰写或者与他人合作撰写了20多本畅销的计算机著作。他曾经获得过布朗大学的博士学位,并且是IBM公司Watson实验室的客座学者,也是康涅狄卡州立大学的一名教授。

图书前言

致读者
你手中拿着的这本书是《Core Java》第5版第Ⅱ卷的中文版。本书第1版于1996年初问世,第2版于1996年底推出,第3版于1997/1998年面市。前两个版本都是单卷版本,不过第2版的篇幅已经比第1版长了许多,因此它本身不是一本薄薄的书了。当我们着手开发第3版时,我们感到一卷的篇幅显然已经无法容纳编程人员需要了解的Java平台的所有特性了。为此,我们决定从第3版起分成两卷来编写。在此版中,我们再次将它编写成两卷。不过,我们对内容进行了创新性的安排,将数据流的特性放入第I卷,而将集合的特性放入了第Ⅱ卷。
第I卷主要讲述Java语言的基本特性,而第Ⅱ卷则主要介绍编程人员进行专业软件开发时需要了解的高级特性。因此,与第Ⅰ卷以及本书的以前版本一样,我们编写的这本书将仍然是面向想要将Java技术用于开发实际软件项目的编程人员的。
请注意,如果你是个经验丰富的软件开发人员,非常熟悉新的事件模型和高级语言特性,那么你就不需要阅读第I卷(不过在第Ⅱ卷中,我们仍然要根据情况适当地引用第I卷中有关章节的内容,并且当然希望你会购买或者已经购买了第I卷,这样你就可以在该书中找到你所需要的关于Java平台的背景材料)。
最后要说明的是,编写任何一本书都会不可避免地存在一些错误和不准确的地方。我们非常愿意听到你对本书的意见。当然,我们希望这样的意见只出现一次。为此,我们建立了一个Web网站,网址是http://www.horstmann.com/corejava.html,上面设有FAQ(常见问题解答)、错误的修改、替代方案等栏目。我们在软件错误报告的Web页的结尾(目的是鼓励你阅读以前的报告)放置了一个窗体,你可以用它来报告软件中存在的错误和问题,提出你的建议,以便改进将来的版本。
本书内容的编排
本书中的大部分章节都是独立的。你可以查阅最感兴趣的问题,并可按照任意顺序阅读这些内容。
第1章介绍多线程,运用多线程技术,你就能够对各个任务进行编程,以便并行执行这些任务(所谓线程,就是程序中的一个控制流)。在本章中我们将要介绍如何建立线程,以及如何确保这些线程不会因为错误而停止运行。我们将用示例代码来说明线程的实际用法,告诉你建立定时器和动画时使用的技术。
第2章介绍Java 2平台的集合框架。每当你想要收集多个对象,并且在以后检索这些对象的时候,就需要使用最适合环境的集合,而不是将各个元素纳入一个向量(Vector)中。该章将介绍如何利用预先已为你建好的标准集合。
第3章将讲述Java平台中最令人感兴趣的一个API,即网络API。Java使它能够非常容易地进行复杂的网络编程。在该章中我们不仅深入介绍了这个API,而且还讲述了applet安全模型在用于网络编程时的重要作用。
第4章介绍JDBC,这是个Java数据库连接API。我们将要向你介绍如何使用JDBC API的核心子集来编写非常有用的程序,以便处理实际中的数据库日常操作任务。请注意,这一章并不是全面介绍功能丰富的JDBC API能够执行的所有任务(如果要全面介绍JDBC API的功能,可能需要写一本像本书一样厚的专著才行)。
第5章讲述远程对象和远程方法调用(RMI)。这个API使你能够对分布在多个机器上的Java对象进行各种操作。我们还要向你介绍何处才能够切实地使用“无处不在的对象”的强大功能。
第6章包含了没有纳入核心Java第I卷的所有Swing内容,尤其是重要而复杂的树结构和表格组件。我们将要说明编辑器窗格的基本用途,以及建立“多个文档”界面时使用的Java技术。在该章中我们将把重点放在实际编程中可能遇到的最有用的构件上。全面介绍整个Swing库将需要编写若干卷才行,并且只有专门的编程人员才对它们感兴趣。
第7章介绍你在建立实际图形时可以使用的Java 2D API。该章还要介绍抽象窗口操作工具包(Abstract Windowing Toolkit,AWT)的一些高级特性,这些特性如果要纳入第I卷的话,显得太专业了一些,但是这些特性应该成为每个编程人员工具包的组成部分。这些特性包括打印和用于剪切和粘贴以及拖放的API。实际上,我们使用的用于剪切和拖放的API比Sun公司本身开发的API向前推进了一步,也就是说,我们向你展示了如何运用系统剪贴板对用Java编程语言编写的程序之间的串行Java对象进行剪切和粘贴。
第8章介绍了用于Java平台的构件API—JavaBeans。你将学会如何编写自己的JavaBeans,使其他编程人员能够在集成式生成器环境中进行各种操作(不过我们没有介绍用于对JavaBeans进行操作的各种生成器环境)。如果Java技术要想取得最后的成功,JavaBeans组件技术是一项非常重要的技术,因为它能够像ActiveX控件一样为千百万Visual Basic编程人员在操作上提供很大的方便,使用户能够同样方便地使用各种用户界面编程环境。当然,由于这些组件是用Java编程语言编写的,因此它们的特性要优于ActiveX控件,因为它们可以直接用于其他的平台,并且能够被纳入到Java平台的复杂安全模型中。
第9章实际上就是介绍Java平台的这些安全模型的。从根本上讲,Java平台的设计是绝对安全的,该章将深入地介绍它的设计是如何进行的。我们将向你说明如何编写用于特定目的的应用程序的类加载器和安全管理器。然后介绍一个新的安全API,它可以用于实现像签名的类那样重要的特性。
第10章介绍一个我们认为其重要性将会不断提高的专门特性,那就是软件的本地化。Java编程语言是从一开始就能够处理Unicode的少数几种语言,不过Java平台中的本地化支持特性所具备的功能要强得多。因此,你可以对Java应用程序进行本地化,这样,它们不仅能够跨平台运行,而且它们的应用将不受国界的限制。例如,我们将向你展示如何编写一个退休金计算器applet,它根据浏览器所使用的语言,既可以使用英语,也可以使用德语和汉语。
第11章介绍各种本机方法(native method),使你能够调用为特定机器(比如Microsoft Windows API)编写的方法。显然,该特性的使用是有争议的,也就是说使用本机方法后,Java平台的跨平台性质就不再存在了。尽管如此,为特定平台编写Java应用程序的每个严谨的编程人员都必须了解这些方法。有的时候,当你编写重要的应用程序时,你必须转用你的目标平台操作系统的API。为此,我们将要向你介绍如何访问Windows中的注册表函数。
第12章介绍XML与Java之间的关系。XML并没有使Java过时,相反,它们之间配合得很好。该章将要讲述如何传递XML文档、文档类型的定义、名字空间等问题,说明应该如何使用SAX分析器,如何生成XML文档,以及如何进行XSL的转换。
本书中的一些约定
注意  提醒读者应当给予重视的地方。
提示  是对读者有所帮助的一些技巧。
警告  容易出错或者可能出现危险的情况。
C++注意  用于解释Java编程语言与C++之间的差别。如果你对C++不感兴趣,那么你可以跳过这些说明。
API  Java平台配有大量的编程库或应用程序编程接口(API)。当初次使用一个API调用时,我们增加了一个简短的综述,并且加上了一个API图标。这些描述虽然不太正规,但是它们比正式在线的API文档提供的信息要稍微详细一些。
源代码在光盘上的程序是作为示例代码列出的程序,比如,“示例代码5-8:Warehouse-Server.java”是指光盘上对应的这个代码。你也可以从Web上下载这些示例代码文件。
定义
“Java对象”是指使用java编程语言建立的对象。
“Java应用程序”是指使用java编程语言编写的程序,可以由Java虚拟机(即用于Java平台的虚拟机)运行。
参予本书翻译工作的人员还有:蒋小英、王卫峰、周茹、张晓佳、丁晓红、张明华、汪卫国、董明、董建平、李君英等。由于时间仓促、水平有限,疏漏之处,敬请读者批评指正。

作者简介

Cay S.Horstmann, Gary Cornell:Cay S.Horstmann: 是圣何塞州立大学计算机科学系教授。他曾经是Preview Systems公司的副总裁和首席技术官,曾任许多大型公司、大学和组织的C++、Java与因特网编程顾问。他还撰写了众多技术和学术专著,并参与编写《Core JavaServer Faces》一书。
Gary Cornell: 曾经撰写或与人合著过20多本计算机畅销书。他是Brown大学的博士,在IBM的Watson实验室做过访问科学家,曾任康涅狄格大学的教授。

译者简介

王建华 董志敏 杨保明 等:暂无简介

图书目录

第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.4  wait和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  JDBC编程的基本概念 233
4.4.1  数据库URL 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.1.2  动态类的加载 282
5.2  准备远程方法调用 282
5.2.1  接口与实现工具 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  代码签名 804
9.5.1  给JAR文件签名 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.3  构造器 909
11.7.4  替代方法调用 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

教学资源推荐
作者: [美] 凯·霍斯特曼(Cay Horstmann) 著
作者: 裘宗燕,李安邦 编著
作者: (美) Bruce Eckel
参考读物推荐
作者: (爱尔兰)Matt Smith (巴西)Chico Queiroz 著
作者: 蒋鑫 著