选 择 您 需 要 的 Java 书 籍
武 汉 荣 世 数 据 通 信 有 限 责 任 公 司
洪 峰
近 来 , 读 者 不 难 发 现 有 关Java 的 著 作 正 在 越 来 越 多 地 出 现 在 书 店 的 书 架 上 。 由 于Java 在 当 今 计 算 机 工 业 中 所 处 的 重 要 地 位 , 对 于 专 业 的 计 算 机 程 序 员 而 言 , 学 习Java 语 言 已 成 为 一 种 重 要 的 职 业 投 资 。 而 对 于 书 店 经 理 而 言 , 如 果 在 购 进 图 书 时 决 策 正 确 , 无 疑 可 以 为 获 得 良 好 的 销 售 利 润 。
根 据 不 完 全 统 计 , 到1996 年 底 , 全 世 界 已 经 出 版 了 近200 种 关 于Java 的 著 作 。1997 年 , 很 多 出 版 商 还 将 推 出 一 系 列 的Java 图 书 。 面 对 如 此 众 多 的 图 书 , 读 者 一 时 可 能 无 所 适 从 。 本 文 将 市 面 上 出 现 的 各 种Java 图 书 归 类 , 并 向 您 介 绍 各 类 中 最 有 代 表 性 的 著 作 , 希 望 这 些 信 息 对 您 选 择Java 图 书 有 所 裨 益 。
一、 您 知 道 什 么 是Java 吗 ? Java 是 由 美 国Sun Microsystems 公 司 开 发 的 一 种 编 程 语 言 , 它 可 以 用 来 编 写 在Internet 环 境 中 运 行 的 应 用 程 序( 当 然 它 还 可 以 用 于 其 他 许 多 场 合) 。 目 前 它 由Sun Microsystems 的 一 个 子 公 司 Javasoft 继 续 开 发 。
初 看 上 去 ,Java 语 言 与C 和C++ 很 相 似 , 但 是 其 实 质 是 不 同 的 。Java 既 是 编 译 型 的 语 言 , 又 是 解 释 型 的 语 言 。 它 的 源 代 码 可 以 编 译 成 为 一 种 通 用 的 形 式 , 这 种 形 式 的 代 码 被 称 为 字 节 码(Bytecodes) , 它 被Java 虚 拟 机 运 行 。Java 虚 拟 机 可 以 跨Internet 移 植 和 解 释 , 并 且 在 多 平 台 上 运 行 。
Java 程 序 常 被 称 为“ 小 应 用 程 序”(Applet) 。 在Java 网 络 化 的 编 程 模 式 下 , 这 种 小 应 用 程 序 可 以 被 嵌 入 到 WWW 的 文 档 页 面 中 , 成 为 一 种“ 可 执 行 的 内 容” 。 当 然 ,Java 语 言 还 可 以 编 写 其 他 常 规 的 应 用 程 序 , 它 的 突 出 特 性 之 一 是 它 有 能 力 创 建 小 的 程 序 , 这 些 小 的 程 序 可 以 跨 网 络 被 复 制 , 并 在 远 程 计 算 机 上 运 行 。
目 前 ,Java 语 言 主 要 用 来 在Web 页 面 上 增 加 动 画 和 提 供 交 互 性 。 但 是 ,Java 语 言 是 一 种 真 正 的 编 程 环 境 , 它 的 应 用 绝 对 不 会 只 局 限 于 在Web 上 提 供 动 态 页 面 。 而 且 许 多 用 户 在 等 待Sun Microsystems 为 这 一 语 言 提 供 更 多 的 功 能 。 随 着 时 间 的 推 进 , 我 们 将 会 看 到 用Java 语 言 建 立 服 务 器、 管 理 远 程 系 统、 在Web 上 显 示 复 杂 的 数 据 库 信 息 , 以 及 开 发 在 网 络 上 供 多 人 参 加 的 游 戏 程 序 。Java 语 言 还 将 是 发 展Internet 商 业 的 主 要 平 台 。
实 际 上 , 因 为Java 语 言 具 有 可 移 植 性、 小 的 规 模、 高 速 度 和 安 全 性 , 它 正 被 人 们 看 成 为 一 套 完 整 的 规 范 和 一 场 革 命 。 正 因 为 如 此 , 目 前 才 史 无 前 例 地 出 现 了 这 样 多 的Java 著 作 。
二、 您 在 购 书 之 前 需 要 了 解 什 么 ? 由 于Java 语 言 的 流 行 非 常 迅 速 , 所 以 书 架 上 有 大 量 介 绍 其 全 貌 和 某 些 部 件 的 书 。 一 个 初 学 者 可 能 不 知 道 应 该 买 哪 一 本 教 程 , 有 经 验 的 程 序 员 也 可 能 难 以 决 定 哪 一 本 书 最 能 满 足 自 己 的 需 要 。 不 过 , 理 解 以 下 几 个 术 语 将 有 助 于 您 确 定 自 己 的 真 正 需 要:
1. Java Core API
Java 应 用 程 序 编 程 接 口 。 像Java 这 样 的 高 级 语 言 均 使 用 许 多 例 程 来 存 取 其 他 的 服 务 。 它 包 括 下 面6 个 包:
java.applet : 为 创 建 小 应 用 程 序 提 供 必 要 的 元 件 , 包 括 声 音 播 放 资 源 。
java.awt: 提 供 用 户 界 面 元 件 。
java.io : 提 供 与 设 备 无 关 的 输 入、 输 出 流 支 持 。
java.lang: 提 供 支 持Java 的 基 础 类 。
java.net: 提 供 支 持 联 网 的 类 。
java.util: 提 供 实 用 方 法 和 数 据 结 构 的 类 。
2. Java 虚 拟 机(Java Virtual Machine)
Java 虚 拟 机 是 被 设 计 成 为 一 个“CPU” 的 软 件 , 用 以 运 行 经 编 译 的Java 代 码 。 它 包 括 单 独 的Java 应 用 程 序 和 可 以 被 下 载 并 在Navigator Web 浏 览 器 内 运 行 的 小 应 用 程 序 。 理 解 虚 拟 机 的 细 节 对 于 调 整 性 能 和 将Java 代 码 移 植 到 新 的 计 算 机 上 是 很 重 要 的 。
3.AWT
抽 象 窗 口 工 具 箱 。 它 是 指 与Java 一 起 发 布 的 六 个 主 要 的 包 中 的 任 何 一 个 。 这 是 一 个 与 平 台 无 关 的 用 于 图 形 用 户 界 面 编 程 的 类 库 的 集 合 。
4.IDE
集 成 开 发 环 境 。 为 开 发 人 员 提 供 的 集 成 工 具 集 合 包 括 图 形 化 的 编 辑 器、 图 形 化 的 除 错 器 和 可 视 化 的 类 的 浏 览 器 。Java IDE 的 例 子 有:Symantec 公 司 推 出 的Cafe、Borland 的Latte、Natural Intelligence 的Roaster、Microsoft 的Jakarta 。
5.JavaScript
除 了 在 名 称 中 出 现 了Java 之 外 ,JavaScript 与Java 编 程 语 言 并 没 有 什 么 特 殊 的 联 系 。JavaScript 不 是Sun Microsystems 或Javasoft 公 司 的 产 品 , 而 是 由Netscape 为 他 们 的Navigato r Web 浏 览 器 ( 客 户 端 的JavaScript) 和 他 们 的Web 服 务 器 产 品( 服 务 器 端 的JavaScript) 而 开 发 的 。 根 据Netscape 的 定 义 ,“JavaScript 是 一 种 为 整 个Internet 社 团 而 提 出 的 开 放 的、 免 费 标 准” 。 Netscape 的JavaScript 设 计 人 员 计 划 发 布 一 套 正 式 规 范 和 这 一 核 心 语 言 免 费 的 参 照 实 现 工 具 。 由 于JavaScript 已 经 变 得 如 此 流 行 , 因 此 它 已 经 成 了 实 际 上 的 标 准 。
三、 名 著 介 绍 目 前 的Java 图 书 大 致 可 划 分 为 教 程 类、 参 考 资 料 类、 实 践 类 和 高 级 专 题 类 。
1. 教 程 类 型
这 一 类 图 书 的 特 点 是 覆 盖 范 围 宽 , 但 是 不 深 , 如:
(1)Exploring Java Java
Pat Niemeyer Josh Peck
O'Reilly & Associates
ISBN 1-56592-184-4
该 教 程 是 为 已 经 理 解 了 计 算 机 编 程 原 理 的Java 用 户 而 编 写 的 。 本 书 秉 承 了 O'Reilly & Associates 公 司 的Nutshell Handbook( 丛 书 的 那 种 实 际 的、 具 有 手 册 性 质 的 风 格 , 它 全 面 介 绍 了Java 的 基 础 知 识 。 它 将 告 诉 你 怎 样 为 你 的Web 页 面 快 速 的 开 发Java 小 应 用 程 序 , 它 还 提 供 了 大 量 的 高 级 例 子 , 涉 及 网 络 化 编 程、 内 容、 协 议 处 理 程 序 和 多 线 程 的 编 程 。
(2)The Java Programming Language
Ken Arnold James Gosling
Addison Wesley
ISBN 0-201-63455-4
该 书 是 由Java 世 界 的 两 个 关 键 人 物 编 写 的 。 本 书 涉 及 到 了Java 语 言 和java.lang、 java .io 和 java.util 的 绝 大 部 分 内 容( 这 些 是 处 理 输 入/ 输 出、 语 言 类 型 和 系 统 类 的Java 核 心 类 库 的 包) 。 而 本 书 却 很 少 讨 论AWT 。 本 书 还 提 供 了 一 些 练 习 , 这 是 许 多 其 他 著 作 所 没 有 的 。
(3)Java Sourcebook
Ed Anuff
Wiley Computer Publishing
ISBN 0-471-14859-8
本 书 对 于 新 的 程 序 员 是 一 个 好 的 选 择 。 这 本 书 告 诉 你 怎 样 用Java 来 创 建Web 程 序 。 虽 然 它 是 一 本 编 程 教 程 , 但 是 许 多 章 都 介 绍 了Java 编 程 的 基 础 知 识 。
(4)The Java Handbook
Patrick Naughton
Osborne/McGraw-Hill
ISBN 0-07-882199-1
本 书 作 者 是 最 初 的Java 开 发 小 组 的 成 员 之 一 , 它 是 一 本 全 面 的 工 具 书 。 它 从 语 言 的 最 基 本 的 东 西 开 始 , 逐 渐 进 入 到Java 编 程 的 许 多 重 要 方 面 。 初 学 者 可 能 发 现 本 书 与 其 他 注 重 讨 论 基 础 内 容 的 著 作( 例 如 Java Sourcebook) 一 起 使 用 效 果 会 非 常 好 。 高 级 的 读 者 可 以 发 现 本 书 中 包 含 的 面 向 对 象 编 程 的 原 则 是 非 常 有 用 的 。
(5)Teach Yourself Java in 21 Days
Laura Lemay & Charles Perkins
SAMS.net/MacMillan Computer Publishing
ISBN 1-57521-030-4
本 书 具 有 传 统 教 程 的 特 点: 第 一 星 期 讨 论 该 语 言 的 基 本 知 识、 类 等; 第 二 星 期 讨 论 所 有 关 于 小 应 用 程 序 的 内 容: 图 形、 动 画、 联 网 等; 到 了 第 三 个 星 期 , 你 将 接 触 到 高 级 的 主 题 , 如 线 程、 例 外 和 原 始 代 码 。 本 书 是 为 具 有 一 定 的 编 程 经 验 而 准 备 学 习Java 的 读 者 而 编 写 的 。 根 据 大 多 数 书 店 的 反 馈 消 息 统 计 , 本 书 是 除 了 Java in a Nutshell 之 外 第 二 大 畅 销 的Java 著 作 。
(6)Java Now!
Kris Jamsa
Jamsa Press
ISBN 1-884133-30-4
本 书 对 于 从 来 没 有 编 过 程、 但 想 学 习Java 的 人 是 一 本 极 好 的 著 作 。 本 书 可 以 作 为Java 培 训 班 的 教 材 。 书 中 的 章 节 清 晰 的 , 简 短 , 而 且 编 写 得 很 好 。 对 于 初 学 编 程 的 人 员 , 可 以 从 测 试 技 巧 的 练 习 题 中 获 益 。 无 论 如 何 , 本 书 是 一 本 好 书 。
(7)Just Java
Peter van der Linden
SunSoft Press/Prentice Hall
ISBN 0-13-565839-X
本 书 是 为 已 经 是 程 序 员 的 读 者 编 写 的Java 入 门 读 物 , 可 读 性 很 好 。 除 了 假 定 读 者 具 有 编 程 的 背 景 知 识 之 外 , 该 书 对 读 者 没 有 其 他 任 何 要 求 。 本 书 介 绍 了 面 向 对 象 的 编 程 技 术 。
SunSoft Press/Prentice Hall 的Java 丛 书(Core Java、 Java by Examples、 Instant Java、Just Java) 中 每 一 本 都 带 有 一 张 同 样 的 光 盘 , 这 张 光 盘 含 有Solaris、Win 32 和 Mac 平 台 上 的Java 1.0 版 本 的 开 发 工 具 包 , 还 有 所 有 的 例 子、 代 码 和 所 有 其 他 四 本SunSoft Press 图 书 中 的 小 应 用 程 序 。
(8)Core Java
Gary Cornell & Cay S. Horstmann
SunSoft Press/Prentice Hall
ISBN 0-13-565755-5
本 书 既 包 括 Java 的 基 本 内 容 , 又 包 括 了 高 级 专 家 的 建 议 和 编 程 技 巧 。 有 两 章 的 篇 幅 详 细 地 介 绍 了 面 向 对 象 编 程 技 术 的 基 础 知 识 , 这 对 于 以 前 没 有 用 过 面 向 对 象 编 程 度 技 术 的 程 序 员 是 很 有 帮 助 的 。 本 书 涉 及 到 了 几 乎 所 有 的Java 句 法 特 性 , 包 括VB 和C/C++ 与 相 应 的Java 特 性 的 对 比 。
SunSoft Press/Prentice Hall 的Java 丛 书(Core Java、 Java by Examples、 Instant Java、Just Java) 中 每 一 本 都 带 有 一 张 同 样 的 光 盘 , 这 张 光 盘 含 有Solaris、Win 32 和 Mac 平 台 上 的Java 1.0 版 本 的 开 发 工 具 包 , 还 有 所 有 的 例 子、 代 码 和 所 有 其 他 四 本SunSoft Press 图 书 中 的 小 应 用 程 序 。
2. 参 考 手 册 类 型
与 入 门 教 程 相 比 , 参 考 手 册 类 型 的 著 作 面 较 窄 , 但 是 涉 及 的 内 容 更 深 。
(1)Java in a Nutshell
David Flanagan
O'Reilly & Associates
ISBN 1-56592-183-6
本 书 不 仅 是 最 畅 销 的Java 著 作 , 而 且 是Internet 上 最 被 人 称 道 和 广 为 推 荐 的 著 作 。 本 书 是 对 Java 全 面 的、 系 统 的 介 绍 , 而 且 是 一 本 快 速 的 参 考 手 册 , 它 包 括 所 有Java 的 方 法 和 变 量 的 定 义 表 。 书 中 用 三 章 的 篇 幅 向C/C++ 程 序 员 介 绍Java 语 言 。 读 完 这 三 章 内 容 之 后 ,C/C++ 程 序 员 就 可 以 开 始 用Java 编 写 程 序 。 本 书 还 包 括 了 实 际 的 小 应 用 程 序 例 子 , 介 绍 怎 样 完 成 平 滑 的 动、 创 建 图 形 用 户 界 面、 编 写 通 过 网 络 通 信 的 客 户 机 和 服 务 器 程 序 等 。 很 多 程 序 员 发 现 本 书 是 他 们 学 习Java 时 唯 一 需 要 的 著 作 。 它 也 是Java 著 作 中 最 全 面 的 单 行 本 参 考 资 料 。 本 书 的 中 译 本 名 为“Java 编 程 深 入 浅 出” , 已 经 于1997 年3 月 出 版 , 读 者 可 以 向 武 汉 荣 世 数 据 通 信 有 限 责 任 公 司 订 购 。
(2)Writing Java Applets
John Rodley
The Coliolis Group
ISBN 1-883577-78-0
本 书 对 于 C++ 程 序 员 是 一 本 非 常 适 合 的 著 作 。 书 中 涉 及 到 了 许 多 高 级 的 主 题 , 如AWT、 类 装 载 器 , 但 没 有 涉 及 到Java 句 法 。 本 书 对 于 已 达 到 了Teach Yourself Java in 21 Days 水 平 的 读 者 是 非 常 有 用 的 。
(3)The Java API Volume 1 - Core Packages
James Gosling, Frank Yellin & The Java Team
Addison-Wesley
ISBN 0-201-63453-8
The Java API Volume 2 - Window Toolkit and Applets
James Gosling, Frank Yellin & The Java Team
Addison-Wesley
ISBN 0-201-63459-7
这 两 卷 参 考 资 料 由Java API 的 设 计 小 组 编 写 , 是 编 写 核 心Java 小 应 用 程 序 最 完 整 的API 文 档 资 料 。 读 者 应 该 注 意 这 两 本 书 包 含 了 可 以 从Sun 的Website 中 联 机 得 到 的 相 同 的 信 息 。
第 一 卷: 核 心 包 描 述 了Java 语 言 的 基 础 类 库 。 这 些 类 库 包 括java.lang、java.io 和java .util 。 它 们 对 于 每 一 个Java 程 序 都 是 基 本 的 通 用 的 类 库 。 第 二 卷: 窗 口 工 具 包 和 小 应 用 程 序 描 述 了 可 以 用 于 创 建 复 杂 可 视 外 观 的Java 应 用 程 序 和 小 应 用 程 序 。 另 外 , 这 一 卷 还 告 诉 读 者 怎 样 创 建 可 嵌 入 的、 能 够 在 网 络 上 安 全 传 输 的 程 序 。 这 些 类 库 包 括java.awt、java.awt.image、java.awt.peer 和java.applet 。
3. 实 践 类 型
这 一 类 著 作 可 能 有 多 种 形 式 , 但 是 其 共 同 特 点 是 通 过 可 供 用 户 使 用 的 例 子 来 讨 论Java 代 码 和 小 应 用 程 序 。
(1)Hooked on Java
Arthur Van Hoff, Sami Shaio & Orca Starbuck
Addison-Wesley Developers Press
ISBN 10-201-48837-X
本 书 包 括 许 多 小 应 用 程 序 的 实 例 , 书 中 有 几 章 讨 论 如 何 编 写 小 应 用 程 序 。 书 中 还 包 括Ja va 编 程 的 一 些 教 程 性 质 的 材 料 。
(2)Developing Professional Java Applets
K. C. Hopson & Stephen E. Ingram
SAMS.net/MacMillan Computer Publishing
ISBN 1-57521-083-5
这 也 是 一 本 关 于Java 的 好 书 。 本 书 的 前 几 章 包 括 了 对 基 本 的Java 句 法 的 概 要 介 绍( 虽 然 对 于 初 学 者 学 习Java 显 得 不 那 么 充 分) , 其 余 部 分 涉 及 到 了 高 级 主 题 , 如AWT、 联 网 和 图 像 。 这 些 章 节 中 的 实 例 绝 不 可 小 视 。 本 书 中 对 于 图 像 和 图 像 过 滤 的 讨 论 是 极 其 出 色 的 。 遗 憾 的 是 , 从 根 据 我 手 头 拿 到 的 版 本 看 , 书 中 讨 论HotJava 的 部 分 显 然 已 经 过 时 。
4. 高 级 专 题 类 型
这 一 类 著 作 针 对 已 经 掌 握 了Java 基 础 知 识 的 用 户 讨 论 极 其 深 入 的 专 题 , 例 如 网 络、 数 据 库 和 图 形 编 程 等 。
(1)Java Developer's Guide
Jamie Jaworshi & Cary Jardin
SAMS.net/MacMillan Computer Publishing
ISBN 1-57521-069-X
有 经 验 的 程 序 员 将 发 现 本 书 对 他 们 很 有 帮 助 。 本 书 的 特 点 是 很 鲜 明 的 , 它 提 供 了 极 好 的 介 绍 了 怎 样 使 用Java AWT、 内 容 和 协 议 处 理 程 序 等 。 这 些 细 节 是 其 他 书 没 有 提 到 的 , 或 者 只 是 很 浅 地 提 及 到 。 本 书 附 带 的 光 盘 包 括 一 些 小 应 用 程 序 和 源 代 码 , 以 及 几 个 平 台 上 的Sun 的JDK 1.0.1.
(2)Graphic Java: Mastering the AWT
David M.Geary & Alan L. McClellan
ISBN 0-13-565847-0
本 书 针 高 级 的、 有 经 验 的 程 序 员 , 全 面 地 讨 论 了AWT , 包 括 在AWT 上 运 行 的 一 整 套 用 户 界 面 工 具 箱 。 Graphic Java Toolkit (GJT) 提 供 了30 多 个 定 做 的 元 件 , 例 如 边 界、 对 话 框、 图 形 按 钮、 工 具 条 等 。
附 带 的 光 盘 包 含 了GJT 的 全 部 源 代 码 , 以 及 书 中 的 例 子 , 这 些 例 子 可 以 运 行 在Solaris、 Windows 95 和Windows NT 等 平 台 上 。 光 盘 还 包 括1.0.2 版 本 的JDK 和Symantec 公 司 的 Caf* Lite 等 。
5. 推 荐 的JavaScript 读 物
(1)JavaScript: The Definitive Guide
David Flanagan
O'Reilly & Associates
ISBN 1-56592-193-3
β
JavaScript 向Web 页 面 提 供 了 具 有 编 程 能 力 的HTML 扩 展 。 有 了JavaScript 之 后 , 你 可 以 控 制Web 浏 览 器 的 行 为 , 向Web 页 面 增 加 动 态 创 建 的 文 本 , 可 以 与 用 户 交 互HTML 表 格 , 甚 至 控 制 并 与Java 小 应 用 程 序 和Navigator 的 插 件 进 行 交 互 。
本 书 的 作 者 就 是 前 面 介 绍 的Java in a Nutshell(《Java 编 程 深 入 浅 出》) 的 作 者David Fl anagan , 他 对JavaScript 进 行 了 深 入 细 致 的 研 究 , 并 发 现 了JavaScript 的 β 版 本 中 令 人 灰 心 的 错 误 , 并 在 书 中 作 了 说 明 。 毫 无 疑 问 , 本 书 是 介 绍 JavaScript 的 权 威 性 著 作 。
(2)Danny Goodman's JavaScript Handbook
Danny Goodman
IDG Books Worldwide, Inc.
ISBN 0-7645-3003-8
本 书 涉 及 到 了JavaScript 的 大 部 分 特 性 , 书 中 使 用 了 许 多 例 子 。 在 附 录 中 列 有 在Intern et 上 的JavaScript 资 源 以 及 怎 样 使 用 本 书 附 带 的 光 盘 等 。 光 盘 中 含 有 书 中 的 例 子 代 码、 分 类 了 的 可 插 入 文 件 和 实 用 工 具 。
四、 发 展 趋 势: 本 文 提 到 的 著 作 都 将 主 题 集 中 在 核 心 的Java 语 言 上 , 可 以 预 见 将 会 有 大 量 讨 论Java 应 用 的 著 作 推 出 , 例 如 O'Reilly & Associates 已 经 或 即 将 推 出 的 其 他 相 关 著 作 有:
The Definitive Guide to Java
Java Language Reference
The Java Virtual Machine
Java Fundamental Classes Reference
Java Network Programming
Java Threads
Java Games Programming
Java Communications Programming
国 内 有 几 位 作 者 也 编 写 了 一 些 优 秀 的 Java 的 著 作 。 在 理 解 上 面 介 绍 的 内 容 之 后 , 我 相 信 您 会 选 择 适 合 需 要 的 Java 的 著 作 。
中国计算机世界出版服务公司版权所有