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

Java 2核心技术 卷2:高级特性
作者 : Cay S.Horstmann, Gary Cornell
译者 : 邓光伟 李丙午 朱志 王怀 赵伟
出版日期 : 2000-11-10
ISBN : 7-111-08244-3
定价 : 88.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 688
开本 : 16开
原书名 : Core Java 2 Vol II: Advanced Features
原出版社: Prentice Hall
属性分类: 店面
包含CD :
绝版 : 已绝版
图书简介

本书详细介绍了程序员需要掌握的Java语言高级特性,阐述了Java语言高级编程的相关特性。本书配套光盘提供了最新Java开发包、共享软件、书中所有示例源代码等内容。本书既适合Java的编程高手阅读,也适合其他有关人员参考学习。

图书前言

致读者
  本书是《Java 核心技术》第4版的第II卷。它的第1版发布于1996年的上半年,第2版发布
 于1996年的下半年,第3版于1997/1998发布。它的前两版都是包含一本书。当开始编著第3版
 时,我们很清楚自己不可能在一本书中覆盖一个严肃的程序员需要知道的关于Java平台的所
 有特性。因而,就把第3版分成两卷。在第4版中,我们仍把这些材料组织成了两卷。
  卷I覆盖了Java语言的基本知识;而本书包含了程序员需要掌握的Java语言高级课题。本
 书的对象仍是想把Java技术用于开发实际项目的程序员。请注意:如果你是一个有经验的开
 发者,并熟悉新的事件模型和像内类(inner class)这样的高级语言特性,即使不看卷I也可以
 从本书中获益不小。(当然,在适当的时候参考了卷I的有关章节,即机械工业出版社出版的
 《Java 2核心技术卷I:基础知识》一书).
  错误和不精确的地方在所难免。我们非常乐意知道这方面的问题。为此,我们建了一个
 主页,专门陈列本书的常见问题(FAQ)、错误修正以及解决方案等等,地址是:
 http:// www.horstmann.com/corejava.html.。FAQ的末尾是一份表格(希望你先看完FAQ的内容),
 可用它提交你发现的错误,以便再版时完善本书。
 本书结构
  总的来说,本书的各章是相互独立的。你可以研究自己最感兴趣的课题,也可以以自己
 喜欢的任何顺序来读各章内容。
  第l章介绍多线程,它能使你并行完成多个任务(一个线程就是程序中一个单独的控制流)。
 介绍如何建立线程和如何确定没有线程被阻塞/挂起。我们将通过介绍构造计时器和制作动画
 所需的技巧把这些知识运用到实例中。
  第2章系统地介绍了Java 2的数据结构平台。当收集多个对象并在以后的工作中检索它们
 时,你当然不想把它们杂乱无章地存放于矢量中,而需要一种能有效检索它们的数据结构。
 本章介绍如何利用Java库提供的标准数据结构来满足这种需要。
  第3章向大家展示了Java平台上最激动人心的AU特性:网络API。Java平台大大简化了复
 杂的网络编程,本章详细地介绍了API的特性,同时也说明了小应用程序安全模型对网络编程
 的重要性。
  第4章讨论了JDBC,即Java数据库连接API。介绍了如何用JDBC API的核心子集开发处理
 数据库事务程序。注意本章介绍的只是JDBC API的一部分。
  第5章介绍了远程对象和远程方法调用(RMI)的相关知识。这个API提供了同时处理分
 布于不同机器上的多个对象的功能,本章也展示了“对象处处存在”的实际用途。
  第6章探讨了卷I没有涉及的Swing的所有高级组件,重点介绍了重要且复杂的树和表格组
 件。本章介绍了编辑窗格的基本用法及“多个文档”接口的Java技术实现,把着重点放在了
实际编程中可能碰到的大多数有用的组件,因为全部介绍Swing包需很长的篇幅。
  第7章讨论了Java 2D API,你可以用这个接口描绘真正的图画。本章也涉及了AWT(AbstractWindowing Toolkit,抽象窗口工具包)的某些高级特性,这些特性如在卷I介绍,似乎有凑篇幅的嫌疑,但它确实应成为程序员工具包的一部分,它包括打印及用于剪贴和拖放的API。实际上,我们对剪贴部分API的介绍比Sun公司更进了一步:介绍了如何通过系统剪贴板在Java编程语言编写的不同程序间剪贴可系列化的Java对象。
  第8章展示了Java平台的组件API(即JavaBeans)。你将了解如何编写自己的bean,以便让其他程序员在集成编程环境中利用它们(但我们并不介绍各种不同的用于控制bean的编程环境)。JavaBeans组件技术对Java技术的最终成功起了不可估量的作用,因为正是这项技术提供了便于使用和操作的用户接口编程环境。当然,这些组件是用Java编程语言开发的,它们在两个方面是ActiveX控件无法相比的:其他平台可以立即使用它们及它们也同样使用于Java平台的高级安全模型c
  第9章讲述Java平台安全模型。Java平台设计的出发点之一是要保证安全,本章介绍这个安全模型是如何实现的。它讨论了如何编写自己的类装载器和安全管理器,以满足自己开发的应用程序,本章还介绍提供重要特性(如签名类)的新的安全AH。
  第10章讨论了Java语言的另外一个特性:国际化,我们相信这个特性会越来越重要。Java编程语言是少数几个从一开始就能处理Unicode的语言之一。但Java语言的国际化特性提供了更强大的功能c因而,你可以用它国际化自己的应用程序c例如,我们将向你展示如何编写一个退休金计算器程序,它可以使用英语、德语或中文——这取决于其浏览器所用的语言。
  第11章论述了本地方法,它们可让你调用为某个指定类型的机器(如Microsoft WindowsAPl)编写的方法。很明显,这个特性会引起争议:使用本地方法,就丧失了Java平台交互特性所带来的优点。但不管怎么说,每个为指定平台开发Java应用程序的认真负责的程序员需了解这些技术。因为很可能出现这样的情况:编写应用程序时,需参阅你目标平台的操作系统的API。我们通过展示如何访问Windows的登录功能来说明这一点。约定
  正文中的“C++注释”解释了Java和C++的差异。如果读者对C++语言不感兴趣,或者本来就没有这方面的背景,跳过不读便是。“注意”和“提示”指出了一些技巧和参考信息。如果要指出一项潜在的危险,“警告”栏会提醒你注意。Java平台拥有一个大型的编程库或应用程序接口(APl)。如果首次用到一个API调用,我们便对其进行简要注释。
  本书配套光盘包含了作为例子列出的程序的源代码,例如,例5-7:Warehouse.Java可在光盘上找到相应的代码。你也可以从网上下载这些例程文件。定义
  一个Java对象(Java object)就是一个用Java编程语言编写的程序创建的对象。
  一个Java应用程序(Java application)就是一个用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实验室做过访问科学家,曾任康涅狄格大学的教授。

译者简介

邓光伟 李丙午 朱志 王怀 赵伟:暂无简介

译者序

随着计算机技术和应用的普及,Java编程语言愈来愈受到计算机开发人员的喜爱和重视。本书在《Java 2核心技术卷I:基础知识》(机械工业出版社出版)的基础上,重点介绍了多线程、数据结构、高级Swing组件、网络编程、安全性和本地化等Java 2提供的高级特性及一些相关的组件;这些工具为开发人员提供了功能强大、界面一流的开发环境,使Java的跨平台、面向对象、可移植性及网络程序设计等特性更易实现,这必将进一步推动Java应用的普及。
  本书详细介绍了一个致力于专业软件开发的程序员需要知道的Java语言高级特性,阐述了Java语言高级编程的相关特性。本书配套光盘提供了最新Java开发包、共享软件、书中所有程序源代码等内容。本书各章相互独立,你可以研究自己最感兴趣的课题;:也可以以自己喜欢的任何顺序来读各个章节。《Java 2核心技术卷I:基础知识》介绍的是Java语言的基本知识,本书介绍了程序员需要掌握的Java语言高级课题。读者对象仍是想把Java技术用于开发实际项目的程序员。如果你是一个有经验的开发者,即使不看卷I也可以从本书中获益不小。
  参加本书翻译工作的人员有:朱志、王怀、赵伟、李丙午、邓光伟、刘小明。全书由朱志、赵伟审校。全书在翻译过程中得到梁晓艳、张景生等同志大力支持,负责文字录入的人员有:孙标、周学广、鲍华、张有中、彭一庆、李英、王和菊、刘有章、张和、陶玉、李金根、谭伟、张景、蒋永标、苏颖、林宏、李红、李伟、何远、何全、何华京、刘后、刘兵、陈戈林、周丽萍、黄宁、陈亮、潘静、张建中、孙霞、葛强、王晶、洪是惠、彭庆、李晓英、王菊、刘章、张和力、孙霞、葛强、张健英等,在这里对他们的辛勤劳动表示感谢。
  由于本书篇幅庞大,译者水平有限,加之时间仓促,书中错漏之处在所难免,敬请广大读者批评指正。

图书目录

译者序
  前言
  第1章 多线程
  1.1 什么是线程
  1.1.1 利用线程给其他任务提供一个机会
  1.1.2 运行和启动线程
  1.1.3 运行多线程
  1.2 线程属性
  1.2.1 线程状态
  1.2.2 离开阻塞状态
  1.2.3 终止状态
  1.3 中断线程
  1.4 线程优先级
  1.5 利己线程
  1.6 线程组
  1.7 同步
  1.7.1 不利用同步化机制的线程通信
  1.7.2 同步访问共享资源
  1.7.3 对象锁
  1.7.4 Wait()和notify()方法
  1.7.5 死锁
  1.8 为什么不推荐使用stoP()和suspend()方法
  1.9 动画
  1.9.1 Runnable接口
  1.9.2 加载和显示图像
  1.9.3 用线程控制动画
  1.10 计时器
  1.11 线程和Swing包
  1.12 利用管道实现线程间的通信
  第2章 数据结构
  2.1 数据结构接口
  2.1.1数据结构接口及其实现
  2.1.2 Java库的Collection和Iterator接口
  2.2 具体数据结构
  2.2.1 链表
  2.2.2 ArrayList类
  2.2.3 散列集
  2.2.4 树集
  2.2.5 映像
  2.3 Java数据结构平台
  2.3.1 视图和封装器
  2.3.2 批处理操作
  2.3.3 连接传统API
  2.4 算法
  2.4.1 排序和打乱
  2.4.2 二分法查找
  2.4.3 简单算法
  2.4.4 编写自己的算法
  2.5 传统的数据结构
  2.5.1 Hashtable类
  2.5.2 枚举
  2.5.3 属性集
  2.5.4 位数组
 第3章 网络编程
  3.1 连接服务器
  3.2 实现服务器
  3.3 发送E-mail
  3.4 URL连接
  3.5 发送FRoM格式数据
  3.5.1 CGI文稿编排程序和Servlet
  3.5.2 向网络服务器发送数据
  3. 6 石获取网上信息
  3.6.1 Applet安全性
  3.6.2 代理服务器
  3.6.3测试天气预报Applet
 第4章 Java数据库连接
   4.1 JDBC的设计方案
  4.2 JDBC的典型用法
  4.3 结构化查询语言
  4.4 安装JDBC
  4.5 基本的JDBC编程概念
  4.5.1 数据库URl
  4.5.2 建立连接
  4.5.3 执行动作命令
  4.5.4 JDBC查询
  4.5.5 高级SQL类型(JDBC2)
 4.6 构建数据库
 4.7 执行查询
 4.8 元数据
 4.9 可滚动的和可更新的结果集
  4.9.1 可滚动的结果集(JDBC2)
  4.9.2 可更新的结果集(JDBc2)第5章 远程对象
 5.1 远程对象介绍:客户机和服务器的作用
 5.2 远程方法调用
  5.2.1 代码存根和参数调度
  5.2.2 动态类装入
 5.3 安装RMI
  5.3.1 接口和实现
  5.3.2 定位服务器对象
  5.3.3 客户机一方
  5.3.4 为部署作准备
  5.3.5 部署程序
 5. 4 远程方法的参数传递
  5. 4. 1 传递非远程对象
  5. 4.2 传递远程对象
  5. 4. 3 使用集合中的远程对象
  5. 4.4 克隆远程对象
  5. 4.5 不适当远程参数
 5.5 使用RMI的小应用程序
 5.6 Java IDL和CORBA
  5. 6. 1 接口定义语言(IDL)
  5.6.2 CORBA范例
  5.6.3 实现CORBAA匠务器
 第6章 高级Swing
  6.1 树
  6.1.1 简单的树
  6.1.2 结点枚举
  6.1.3 渲染结点
  6.1.4 监听树事件
  6.1.5 自定义树模型
  6.2 表
  6.2.1 简单的表
  6.2.2 表模型
  6.2.3 单元渲染和编辑
  6.2.4 处理行和列
  6.3 Styled文本组件
  6.4 滑标和进度计
  6.4.1 滑标
  6.4.2 进度条
  6.4.3 进度监视器
  6.4.4 监视输入流进度
  6.5 工具条和工具提示
  6.6 组件管理器
  6.6.1 分离窗格
  6.6.2 标签窗格
  6.6.3 桌面窗格和内部帧
 第7章 高级AWT
  7.1 渲染途径
  7.2 图形
  7.2.1 图形类继承结构
  7.2.2 图形类的使用
  7.3 区域
  7.4 笔画
  7.5 颜色
  7.6 坐标转换
  7.7 剪辑
  7.8 透明与组合
  7.9 渲染提示(rendering hint)
  7.10 图像处理
  7.10.1 存取图像数据
  7.10.2 过滤图像
 7.11 打印
   7.11.1 单页打印
  7.11.2 多页打印
  7.11.3 打印预览
 7.12 剪贴板
  7.12.1 数据传输的类和接口
  7.12.2 文本传输
  7.12.3 创建Transferable对象
  7.12.4 创建一个图像Transferable类
  7.12.5 使用ImageSelection类
  7.12.6 通过系统剪贴板传输Java对象
 7.13 拖放
  7.13.1 放置目标
  7.13.2 拖动源第8章 JavaBeans
 8.1 为什么要Beans
 8.2 Bean编写过程
 8.3 BDK和BeanBox
  8.3.1 使用BeanBox
  8.3.2 使用BeanBox中的Bean
  8.3.3 在BeanBox中创建一个简单应用程序
  8.3.4 保存和恢复BeanBox的状态
  8.3.5 从BeanBox创建一个Applet
  8.3.6 在工具栏中增加Bean
 8.4 通过Bean创建一个图像预览应用程序
 8.5 Bean属性和事件的命名模式
 8.6 Bean属性类型
  8.6.1 简单属性
  8.6.2 索引属性
  8.6.3 关联属性
  8.6.4 限制属性
 8.7 添加自定义Bean事件
 8.8 属性编辑器
 8.9 超越命名模式——创建一个BeanInfo类
 8.10 定制器
  8.11 Bean环境
  8.11.1 自检的高级用法
  8.11.2 查找兄弟Bean
  8.11.3 使用Bean环境服务
 第9章 安全性
  9.1 类装载器
  9.2 字节码验证
  9.3 安全管理器和权限
  9.3.1 Java 2平台安全机制
  9.3.2 安全策略文件
  9.3.3 自定义权限类
  9.3.4 实现一个权限类
  9.3.5 自定义的安全管理器
  9.4 java.security包
  9.4.1 消息摘要
  9.4.2 数字签名
  9.5 验证
  9.5.1 x.509证书格式
  9.5.2 生成证书
  9.5.3 证书签名过程
  9.6 代码签名
  9.6.1 签署JAR文件
  9.6.2 部署提示
  9.6.3 软件开发商证书
 第10章 国际化
  10.1 地区性
  10.2 数字与货币
  10.3 日期与时间
  10.4 文本
  10.4.1 整理(排序)
  10.4.2 文件分界
  10.4.3 信息格式化
  10.4.4 选择(choice)格式
  10.4.5 字符转换
  10.4.6 国际原则和源文件
  10.5 资源包
  10.5.1 资源定位
  10.5.2 把资源放进包里
  10.6 图形用户接口地方化
第11章本 地方法
 11.1 用Java编程语言调用一个C函数
 11.2 数值参数和返回值
 11.3 字符串参数
 11.4 访问对象域
 11.5 访问静态域
 11.6 签名
 11.7 调用Java方法
  11.7.1 非静态方法
  11.7.2 静态方法
  11.7.3 构造方法
  11.7.4 其他方法调用
 11.8 数组
 11.9 错误处理
 11.10 启用APl
 11.11 一个完整的例子:访问Windows注册表
  11.11.1 Windows注册表概况
  11.11.2 读取注册表的Java平台接口
  11.11.3 用本地方法实现注册表访问的函数

教学资源推荐
作者: 尹宝林
作者: 明安龙 宋桂岭 刘亮 编著
作者: 刘海燕 荆涛 主编 王子强 武卉明 杨健康 周睿 编著
参考读物推荐
作者: 贾佳 郝洪明
作者: [美] 约书亚·布洛克 (Joshua Bloch)著
作者: 马承志 张延鑫 张维宁 史兰 等