近 来 , 读 者 不 难 发 现 有 关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
本 书 具 有 传 统 教 程 的 特 点: 第 一 星 期 讨 论 该 语 言 的 基 本 知 识、 类 等; 第 二 星 期 讨 论 所 有 关 于 小 应 用 程 序 的 内 容: 图 形、 动 画、 联 网 等; 到 了 第 三 个 星 期 , 你 将 接 触 到 高 级 的 主 题 , 如 线 程、 例 外 和 原 始 代 码 。 本 书 是 为 具 有 一 定 的 编 程 经 验 而 准 备 学 习Jav