关 于JDK1.1 的 问 答在SUN 公 司 发 布JDK1.1 升 级 版 后 不 久, 美 国Java World 的 记 者Kieron Murphy 对SUN 公 司 的 产 品 经 理Eric Chu 进 行 了 采 访。 在 此, 我 们 公 布 这 一 采 访, 以 饷 读 者。 Q: 安 全 性 似 乎 是JDK 1.1 版 的 中 心, 增 加 了 数 字 签 名 和 消 息 摘 要。 那 么 在 这 种 增 强 的 安 全 性 下 对 于 老 的 沙 盒(sand box) 模 型 意 味 着 什 么 ? A: 老 的 沙 盒 模 型 依 然 存 在。 我 们 只 是 提 供 了 更 多 的 选 择。 从 用 户 处 我 们 收 到 的 反 馈 是 沙 盒 模 型 是 很 好 的, 但 是 他 们 想 让 我 们 把 它 做 得 开 放 一 些, 能 够 让 他 们 做 不 同 的 事。 因 此, 我 们 增 加 了 数 字 签 名, 为 让 系 统 可 以 查 验 应 用 程 序 中 一 个 特 殊 部 分 源 码 的 一 种 方 式。 然 而, 让 沙 盒 来 包 含 部 分 代 码 是 非 常 重 要 的, 在 将 来 可 能 一 些 聪 明 的 开 发 者 可 以 找 到 一 种 危 及 这 种 数 字 签 名 机 制 的 安 全 的 方 法。 通 过 继 续 使 用 沙 盒 模 型, 你 就 可 以 得 到 保 护。 Q: 这 些 新 的 安 全 措 施 对 开 发 者 会 产 生 什 么 样 的 冲 击 ? A: 这 使 得 用 户 可 用 一 种 可 信 的 方 式 在Internet 上 传 递 函 数。 这 一 点 非 常 重 要。 在 企 业 内 部 网(Internet) 内, 人 们 不 用 过 分 地 考 虑 安 全 性 问 题。 但 谈 及 在Internet 上 传 递 代 码 时, 这 就 变 成 一 个 很 大 的 问 题。 因 此 我 们 所 做 的 只 是 简 单 地 把 代 码 片 段 放 到 某 地, 使 得 人 们 可 以 用 一 种 收 件 人 不 用 担 心 他 或 她 所 取 的 东 西 安 全 性 问 题 的 方 式 传 递 资 源。 Q:AWT 的 代 表 事 件 模 型(delegation event model) 显 然 是JDK 1.1 中 非 常 重 要 的 特 征。 它 给 开 发 者 提 供 了 什 么 功 能 ? A: 它 给 开 发 者 提 供 了 两 项 上 要 功 能。 第 一, 它 允 许 开 发 人 员 可 以 编 写 更 大 规 模 的Java 应 用 程 序, 新 的 代 表 事 件 模 型 在UI 和(business logic) 之 间 提 供 了 明 确 的 分 隔。 你 可 以 重 用 这 个 商 业 逻 辑, 让 它 为 另 一 个UI 组 件 服 务。 第 二, 代 表 事 件 模 型 实 际 上 是 一 个 非 常 可 塑 的 体 系 结 构, 当 需 要 时, 允 许 开 发 人 员 将 许 多 不 同 类 型 的 行 为 增 加 或 扩 展 到 系 统 中。 Q: 对 于 程 序 员 来 说,I/O 功 能 的 增 加 似 乎 特 别 具 有 吸 引 力。 字 符 流 对Java 方 程 有 什 么 影 响 ? A: 在JDK 1.1 中 加 入 了 国 际 化 的 特 征, 我 们 是 要 提 供 一 种 更 可 变 的 形 式, 使 得Java 系 统 可 以 处 理 不 同 的 字 符 集 ─ ─ 特 别 是 外 国 语 言。JDK 用unicode 表 示 任 何 东 西, 但 是JDK 必 须 宿 主 到 不 同 的 操 作 系 统 上, 这 些 操 作 系 统 可 能 有 他 们 自 己 本 地 的 字 符 集, 所 以 我 们 需 要 有 一 种 机 制 来 处 理 它。 Q: 与JDK 1.1 有 关 的Reflection 的 情 况 如 何 ? A:Reflection 一 种 基 本 技 术, 它 使 得Java 组 件 或 对 象 可 以 在 运 行 时 相 互 作 用。 可 以 动 态 地 发 现 方 法、 界 面 和 域。 这 是 一 个 强 大 功 能, 使 得 我 们 可 以 实 现Java Beans。Reflection 在 一 些 现 代 开 发 环 境 中 允 许 诸 如 对 象 检 查 器(Object inspector) 之 类 的 事 物。 Q: 内 部 类(inner classes) 的 重 要 性 ? A:Inner Classes 是 联 系 代 表 事 件 模 型(delegation event model)。 它 们 意 味 着 在 组 件 消 息 或 适 合 彼 此 的 事 件 简 化 语 法, 允 许 开 发 人 员 获 得 相 当 可 观 的 能 力。Sun 公 司 的 员 工 做 了 许 多 工 作 竭 力 发 展 内 部 类。 Q:Java 本 地 接 口(Java Native Interface) 的 特 征 是 什 么 ? A:Java 本 地 接 口 命 名 那 些 有 访 问 本 地 代 码 要 求 的Java 应 用 程 序 可 以 在 所 有 的Java 虚 拟 机 上 以 统 一 的 方 式 进 行 访 问。 在JDK 1.0.2 中 这 项 功 能 被 称 为NMI ─ ─ 本 地 方 法 接 口(Native Method Interface)。NMI 是 一 个 很 好 的 尝 试, 但 是 不 完 善。 Q: 新 的 对 象 可 以 序 列 化(Object Serialization) 和RMI 的 特 点 如 何 ? A: 对 象 序 列 化 将 一 个 对 象 归 档 为 一 个 流, 然 后 将 它 或 者 输 入 到 一 个 文 件 中 或 者 通 过 线 路 输 出 到Java 虚 拟 机。RMI 的 一 个 最 大 特 点 是, 在 本 地Java 组 件 模 型 中 通 过 杠 杆 作 用 起 作 用, 你 不 仅 可 以 使 两 个Java 对 象 彼 此 相 互 作 用, 你 还 可 以 通 过 对 象 序 列 使 需 要 的 功 能 从 一 台 虚 拟 机 器 另 一 台 虚 拟 机。RMI 是 本 地 化 的Java 分 布 模 型。 它 非 常 易 于 使 用。 并 且 因 为 它 是 本 地 化 的, 它 的 功 能 也 是 非 常 强 大 的, 它 可 以 提 供 许 多 可 变 通 性 方 案。 Q:JDK1.1 性 能 有 哪 些 增 加 ? A: 在Java 虚 拟 机 中 与 机 器 有 关 的 代 码 部 分, 我 们 增 加 了 一 些 汇 编 代 码; 在 早 期 的benchmark 测 试 中, 我 们 在 计 算 能 力 方 面 取 得 了 两 至 三 倍 性 能 的 提 高。 不 过, 如 果 涉 及 到I/O 或 图 形 系 统, 其 性 能 将 会 受 到 限 制。 我 们 也 增 加 了 类 的 垃 圾 收 集, 使 得 不 再 使 用 的 类 可 以 有 效 地 从 系 统 中 移 去, 降 低 内 存 的 耗 用 和 提 供 更 高 的 性 能。 我 们 还 重 写 了AWT 对 等 类(peer classes), 使 之 宿 主 在win 32 上, 而 不 是MFC。 通 过 让AWT 对 等 类 宿 主 在Win 32 上, 我 们 取 得 了 更 高 的 性 能。 最 后 一 件 重 要 的 大 事 是JAR。JAR 是 一 种 文 件 归 档 格 式, 它 允 许 将Java 小 应 用 程 序 和 相 应 的 声 音 文 件、 图 像 文 件 或 其 它 需 要 类 材 料 打 包 后 进 行 压 缩, 因 此 当 通 过 线 路 下 载 时 将 节 省 很 多 时 间。 在 我 们 这 里 所 做 的 一 些benchmark 测 试 中, 我 们 看 到 通 过 使 用JAR 文 件 格 式, 在 下 载Java 小 应 用 程 序 时 取 得 了 两 至 五 倍 的 性 能 提 高。 Q: 现 有 的 应 用 程 序 用JDK1.1 重 新 编 译 可 以 得 到 什 么 样 的 性 能 提 高 ? A: 这 主 要 由 应 用 程 序 决 定。 Q: 关 于JDK 1.1 整 体 上 的 最 后 评 论 ? A: 我 们 用JDK 1.1 所 尽 力 去 做 的 是 解 除 障 碍。 我 们 想 让 人 们 可 以 容 易 地 编 写 完 全 的、 大 规 模 的 应 用 程 序。 我 们 将 发 展Java 成 为 一 种 足 够 成 熟 的 平 台, 使 得 人 们 可 以 开 发 基 于Web 的 小 应 用 程 序 到 企 业 范 围 应 用 程 序 的 所 有 应 用。 李 枝 林 编 译 |