在 这 一 讲 中, 我 们 将 重 点 介 绍Java 平 台 技 术, 首 先 介 绍Java 核 心 技 术Java 虚 拟 机 的 概 貌、 结 构, 然 后 再 说 明100 % 纯Java 的 概 念 和 纯Java 程 序 应 遵 循 的 原 则, 在 本 讲 的 最 后, 我 们 将 介 绍 几 种 主 要 的Java 开 发 工 具 和 浏 览 工 具。
一、Java 虚 拟 机
上 一 讲 我 们 已 经 提 到 平 台 无 关 性 是Java 最 重 要 的 特 性, 而 实 现 这 一 特 性 的 基 础 就 是Java 虚 拟 机。 因 此, 了 解Java 虚 拟 机 的 结 构 和 工 作 方 式 对 进 一 步 理 解Java 概 念 十 分 有 益。 下 面 我 们 将 从 两 个 方 面 介 绍Java 虚 拟 机。
1、 什 么 是Java 虚 拟 机
可 以 说,Java 不 仅 仅 是 一 种 语 言, 更 重 要 是 一 种 区 别 于 传 统 系 统, 遵 循" 网 络 就 是 计 算 机" 信 条 的 平 台 技 术。Java 平 台 将 面 向 对 象 系 统 扩 展 成 包 括 程 序 和 数 据 的 网 络 计 算 机, 而 这 个 平 台 的 核 心 就 是Java 虚 拟 机, 许 多 使Java 成 为 万 能 开 发 平 台 的 属 性 都 源 于Java 虚 拟 机 的 概 念 和 实 现。
从 底 层 看,Java 虚 拟 机 就 是 以Java 字 节 码 为 指 令 组 的 软CPU。 附 图 显 示 了Java 系 统 流 程 图( 内 含Java 虚 拟 机)。 从 附 图 可 以 看 出, 在 服 务 器 端 首 先 由 开 发 人 员 编 写Java 程 序 并 存 为. Java 文 件; 其 次,Java 编 译 器 将.java 文 件 编 译 成 由 字 节 码 组 成 的.class 文 件; 最 后, 将.class 文 件 存 放 在Web 服 务 器 上。 到 此,Java 程 序 已 作 为Internet 或Intranet 资 源 存 放 在Web 服 务 器 上 随 时 可 让 客 户 使 用。 在 客 户 端, 用 户 使 用WWW 浏 览 器, 通 过Internet/Intranet 将Web 服 务 器 上 的 含 有Java 程 序 的 主 页 下 载, 再 依 赖 本 地Java 虚 拟 机 对.class 文 件 解 释 执 行。 这 样, 内 容 丰 富 的Java 应 用 资 源 便 由 服 务 器 传 送 到 客 户 端, 并 在 用 户 浏 览 器 上 显 示 出 来。
图1 Java 程 序 开 发 和 运 行 过 程
和 普 通 的 程 序 装 入 器 一 样,Java 虚 拟 机 执 行 程 序 时 首 先 从 网 络 或 本 地 存 储 器 中 装 入.class 文 件。 由 于 网 络 的 不 安 全 因 素 较 多,Hacker 的 恶 意 攻 击, 网 络 病 毒 的 侵 袭 等 等, 因 此,Java 虚 拟 机 在 执 行.class 文 件 前, 首 先 要 对 其 进 行 验 证。 如 果 没 有 通 过 验 证, 则 不 执 行 并 给 出 错 误 信 息, 相 反, 如 果 程 序 成 功 地 经 过 验 证 阶 段,Java 虚 拟 机 将 运 行 翻 译 器 读 取 字 节 码, 把 字 节 码 转 换 成 操 作 系 统 硬 件 相 关 的 指 令, 并 在 真 正 的CPU 上 执 行。
字 节 码 是Java 虚 拟 机 的 指 令 组( 很 象CPU 上 的 微 码)。 字 节 码 形 式 为< 操 作 码><... 操 作 数>。 其 中, 操 作 码 就 是 指 令 码, 占 一 个 字 节 的 长 度, 一 个 字 节 码 可 以 有 多 少 操 作 数。 目 前,Java 虚 拟 机 规 范 中 定 度 了220 个 字 节 码 指 令。 由 于 字 节 码 指 令 数 目 种 类 繁 多, 相 对 于 机 器 码 语 义 层 次 较 高, 因 此,Java 语 言 编 译 成 字 节 码 后 文 件 尺 寸 较 小 便 于 网 络 传 输。 为 了 运 行Java 字 节 码, 硬 件 厂 商 或 操 作 系 统 厂 商 在 自 己 的 硬 件 和 操 作 系 统 组 合 中 实 现Java 虚 拟 机。Java 虚 拟 机 程 序 模 块 通 常 用C、C + + 或 相 应CPU 支 持 的 汇 编 语 言 编 写。Java 虚 拟 机 用 主 机 操 作 系 统 帮 助 完 成 内 存、 文 件 系 统、 显 示 器、 鼠 标、 键 盘、 网 络 和 其 它 设 备 驱 动 器 以 及 线 程 处 理 等。 另 外, 各 厂 商 开 发 自 己 系 统 的Java 虚 拟 机 需 要 获 得Java 许 可 证。 标 准 的Javasoft 许 可 包 括Java 类 库 和Java 虚 拟 机。 每 个 拿 到 许 可 证 的 公 司 都 会 在 自 己 的 平 台 上 成 为Java 的 监 护 人, 他 们 可 以 优 化 系 统 性 能, 但 必 须 保 证 独 立 于 平 台 的 纯Java 小 程 序 能 在 他 们 的 系 统 上 运 行。
从 概 念 上 讲,Java 虚 拟 机 的 基 本 执 行 单 元 是.class 文 件。 一 个Java 程 序 经 过 编 译 后 将 形 成 多 个.class 文 件, 而 每 个 文 件 都 对 应 一 个 程 序 中 定 义 的 类。 因 此, 带 有 多 个.class 文 件 的Java 程 序 在 执 行 时 与 传 统 程 序 相 比 就 有 其 特 殊 性。 传 统 的 程 序 在 运 行 前, 系 统 要 装 入 含 有 全 部 程 序 码 的 单 一 执 行 文 件, 而Java 虚 拟 机 在 执 行 程 序 时 则 不 同, 它 遵 循" 即 用 即 装 入" 的 原 则。 具 体 讲, 由 于 一 个.class 文 件 可 以 引 用 许 多 其 它.class 文 件( 在Java 语 言 中, 通 过import,implement 或extends 语 句 实 现), 当 运 行 的 类 需 要 其 他 类 时,Java 虚 拟 机 即 从 网 络 或 本 地 文 件 系 统 装 入.class 文 件。 将 这 个 概 念 拓 广, 不 同 类 可 以 由 不 同 开 发 者 在 不 同 服 务 器 上 开 发,Java 虚 拟 机 能 够 动 态 地 装 入 和 联 接 所 需 要 的 类 文 件。 这 对 今 后 软 件 开 发 以 及 分 布 式 计 算 都 将 有 深 远 的 意 义。 例 如: 这 种 结 构 可 以 使 在 服 务 器 向 客 户 机 提 供 软 件 新 版 本 时, 只 更 新 相 应 的.class 文 件, 真 正 实 现 零 管 理 客 户 机 以 及 无 版 本 软 件 等。
另 外,Java 虚 拟 机 是 使.class 文 件 具 有 跨 平 台 能 力 的 核 心 结 构, 同 一.class 文 件 可 以 运 行 在 实 现Java 虚 拟 机 的 不 同 计 算 机 上。 虚 拟 机 只 需 要 知 道.class 文 件 应 该 是 什 么 结 构 和 应 当 包 含 什 么, 而 不 必 管.class 文 件 对 应 的 源 程 序 代 码 是 由 何 种 语 言 编 写 的。 由 于 各 种 语 言 的 编 译 器 与Java 虚 拟 机 本 身 无 关, 因 此 只 要 不 同 语 言 的 编 译 器 能 从 这 些 源 文 件 中 产 生Java 字 节 码, 开 发 人 员 就 可 以 使 用 各 人 所 熟 悉 的Ada,C 或C + + 语 言 编 写 的 运 行 在 任 何Java 虚 拟 机 上 的 应 用 程 序, 而 不 必 一 定 要 学 习Java 语 言。 实 现 以 上 所 说 的 内 容, 将 大 大 简 化 现 有 软 件 向 平 台 无 关 软 件 转 化 的 工 作。
2、Java 虚 拟 机 结 构
Java 虚 拟 机 体 系 结 构 包 括 以 下 部 分: 数 据 类 型、 指 令 组、 寄 存 器 组、 方 法 区、 无 用 单 元 回 收 堆, 下 面 分 别 介 绍。
Java 虚 拟 机 规 定 了 统 一 的 数 据 类 型 以 及 类 型 长 度。 例 如, 整 型 为32 位 长, 浮 点 为IEEE 754 格 式 等 等。 对 于 各 种 操 作 系 统 如 硬 件 数 据 类 型 长 度 是 相 同 的。 程 序 没 有 改 变 数 据 类 型 的 自 由。
Java 虚 拟 机 的 寄 存 器 用 于 保 存 机 器 的 运 行 状 态, 它 们 同 微 处 理 器 的 寄 存 器 很 类 似。Java 虚 拟 机 寄 存 器 有 四 种:
pc: Java 程 序 计 数 器, 包 含 下 一 字 节 码 指 令 的 地 址
optop: 指 向 操 作 数 栈 顶 端 的 指 针
frame: 指 向 当 前 执 行 方 法 的 执 行 环 境 的 指 针
var: 指 向 当 前 执 行 方 法 局 部 变 量 区 第 一 个 变 量 的 指 针
Java 虚 拟 机 是 栈 式 的, 它 不 定 义 或 使 用 寄 存 器 来 传 递 或 接 受 参 数, 其 目 的 是 为 了 保 证 指 令 集 的 简 洁 性 和 实 现 时 的 高 效 性( 特 别 是 对 于 寄 存 器 数 目 不 多 的 处 理 器)。
Java 虚 拟 机 的 方 法 区 是 编 译 后 的 代 码 区 域, 它 包 括 方 法 代 码、 符 号 表 等。
Java 虚 拟 机 的 栈 有 三 个 区 域: 局 部 变 量 区、 执 行 环 境 区、 操 作 数 区。Java 虚 拟 机 并 不 保 证 任 何 内 存 单 元 回 收 的 时 间 安 排, 所 以Java 编 程 人 员 不 要 误 以 为 只 要 对 象 不 再 在 程 序 中 使 用, 对 象 占 用 的 内 存 就 立 即 可 用。 这 就 意 味 着, 开 发 需 要 大 量 内 存 的 程 序 时 必 须 格 外 小 心, 连 续 申 请 内 存 可 能 引 起 内 存 不 足 的 错 误。
3.Java 虚 拟 机 的 安 全 措 施。
前 面 已 经 提 到,Java 程 序 可 以 从 网 络 上 下 载 运 行, 这 必 然 带 来 许 多 不 安 全 因 素。 一 些 恶 意 的Hacker 可 以 直 接 写 出 字 节 代 码 段 攻 击 用 户 节 点, 如 删 除 文 件、 搞 乱 硬 盘 或 未 经 用 户 许 可 在 网 上 发 送 本 地 信 息 等。 这 些 防 卫 本 地 机 被 攻 击 的 任 务 就 交 给 了Java 虚 拟 机 完 成。Java 虚 拟 机 提 供 了 几 种 安 全 机 制, 其 中 两 种 主 要 的 机 制 是 安 全 管 理 器 和Java 类 文 件 认 证 器。
安 全 管 理 器 是 安 全 的 实 施 者, 它 是 一 个 可 扩 展 类, 提 供 加 在 应 用 程 序 和 特 写 系 统 上 的 安 全 措 施。 它 实 现Java 虚 拟 机 的 安 全 策 略。 安 全 管 理 器 建 立Java 程 序 的 名 空 间, 限 制 对 网 络、 本 地 文 件 系 统 和 程 序 其 它 部 分 的 访 问( 程 序 的 名 空 间 是 由 操 作 系 统 或 这 里 的Java 虚 拟 机 所 建 立 的 程 序 边 界, 该 程 序 无 法 访 问 名 空 间 以 外 的 资 源)。
Java 认 证 器 在.class 文 件 运 行 前 完 成 该 文 件 的 安 全 检 查, 确 保Java 字 节 码 符 合Java 虚 拟 机 规 范。Java 平 台 通 过 使 用 认 证 器 查 看 类 文 件 的 句 法 和 词 法 正 确 性, 检 查 版 本 及API 符 合 性 等, 保 证 病 毒 和 其 它 恶 意 程 序 不 会 侵 犯 本 地 系 统。 认 证 器 包 括 四 个 阶 段 的 操 作: 类 文 件 认 证、 类 型 系 统 认 证、 字 节 码 认 证 和 运 行 时 类 型 与 访 问 检 查。 此 外, 认 证 器 在 检 查 期 间 还 能 识 别 算 法 操 作 的 上 溢 和 下 溢 等 其 他 可 能 发 生 在 运 行 期 间 的 程 序 错 误。
最 后 需 要 注 意 的 一 点 是,Java 虚 拟 机 的 取 得 要 谨 慎 小 心。 因 为 大 多 数Java 安 全 笥 措 施 都 靠 无 病 毒 的Java 虚 拟 机 完 成, 如 果 用 户 下 载 了 一 个 带 有 病 毒 的 虚 拟 机, 则 虚 拟 机 不 仅 失 去 防 范 功 能, 本 身 也 可 能 成 为 用 户 的 隐 患。Sun,Microsoft 等 公 司 的Java 虚 拟 机 都 经 过 了 彻 底 检 查, 下 载 和 操 作 通 常 是 安 全 的, 下 载 安 全 的Java 虚 拟 机 是 对 付 入 侵 的 第 一 道 防 线。
4.Java 虚 拟 机 的 性 能
由 于 在 当 前 主 机 操 作 系 统 上 加 上 了Java 虚 拟 机 层,Java 字 节 码 执 行 速 度 目 前 要 比 本 地 机 器 慢10 到20 倍。 速 度 问 题 可 能 是 影 响Java 推 广 的 唯 一 原 因。 影 响Java 字 节 码 执 行 速 度 的 原 因 很 多:
(1) 首 先, 验 证 过 程 要 花 费 时 间, 读 入 的 类 要 在 运 行 时 验 证, 而 传 统 程 序 在 程 序 编 译 时 即 完 成 验 证 工 作。(2) 其 次,Java 指 令 都 是 字 节 码。 由 于 大 多 数 操 作 对 象 超 过 一 个 字 节 长, 因 此 必 须 读 多 个 字 节 码 来 取 得 操 作 符 和 不 同 操 作 数。(3) 再 次, 由 于Java 完 全 采 用 堆 栈 机 理, 运 算 操 作 都 在 堆 栈 上 执 行。 而 传 统 编 译 器 在 编 译 时 进 行 多 种 优 化 工 作, 很 多 计 算 操 作 可 直 接 在 寄 存 器 中 完 成, 大 大 提 高 程 序 执 行 速 度。(4) 最 后, 在 程 序 执 行 期 间, 系 统 要 进 行 无 用 内 存 单 元 回 收 工 作, 在 回 收 过 程 中, 程 序 将 停 止 执 行, 这 无 疑 也 会 影 响 性 能。 以 上 只 列 出 了 四 条 主 要 的 原 因, 还 有 其 他 一 些 因 素 综 合 作 用 影 响 着Java 虚 拟 机 的 性 能。
目 前, 针 对Java 虚 拟 机 程 序 速 度 慢 的 问 题, 几 家 主 要 的 公 司( 如Microsoft,Borland 等) 提 出 了 及 时 编 译 技 术(Just-In-Time)JIT。 具 体 说, 就 是JIT 编 译 器 在 程 序 开 始 执 行 前 把 所 有 字 节 码 翻 译 成 本 地 机 器 码, 然 后 再 将 翻 译 后 的 机 器 码 放 在CPU 上 运 行。 这 样, 我 们 就 用 字 节 码 编 译 器 代 替 了 原 来 的 解 释 器, 它 对 用 户 透 明 而 又 提 高 了 执 行 速 度。 据 称,Borland 公 司 工 发 的JIT Java AppAccelerator 能 使 应 用 程 序 运 行 速 度 比 解 释 执 行 快5 到10 倍。 也 许 将 来JIT 编 译 器 会 加 到Java 虚 拟 机 中, 从 而 解 决 所 有 性 能 问 题。
二、100 % 纯Java 的 概 念
" 编 写 一 次, 任 意 运 行" 是Java 平 台 技 术 的 最 大 理 想。 它 不 仅 节 省 开 发 者 的 时 间 而 且 也 节 省 了 软 件 开 发 的 整 体 费 用。 另 外, 不 象 传 统 的 程 序 设 计 系 统 把 开 发 者 束 缚 在 单 一 的 软/ 硬 件 平 台 上,Java 平 台 使 用 一 种 语 言 在 多 种 硬 件 和 系 统 软 件 上 架 起 了 一 座 桥 梁。 这 开 拓 了 一 个 新 的 市 场, 创 造 更 多 的 市 场 机 会。 然 而,Java 平 台 固 有 的 可 移 植 性 并 不 能 保 证 所 有Java 程 序 都 能 无 缝 地 在 不 同 平 台 上 运 行, 有 许 多 小 因 素 会 影 响Java 程 序 的 可 移 植 性。 因 此,Sun 公 司 定 义 了100 % 纯Java 的 概 念, 作 为 衡 量Java 程 序 可 移 植 的 一 个 重 要 方 面。 所 谓 纯Java 程 序 是 指 仅 依 赖 于 文 档 中 所 定 义 的Java 平 台 的 程 序。 一 个 纯 的Java 程 序 只 与 程 序 如 何 使 用 平 台 接 口 有 关 而 与 程 序 实 现 的 功 能 无 关。 因 此, 通 过 检 验 程 序 的 底 层 而 不 是 用 户 层 可 以 判 断 程 序 的 纯 与 不 纯。 目 前 的 检 验 过 程 包 括 对 组 成 程 序 的 类 文 件 进 行 静 态 分 析 以 及 通 过 运 行 程 序 进 行 的 动 态 测 试。 检 验 由 专 门 的 测 试 公 司 遵 照 纯Java 程 序 的 规 范 进 行。 参 加 检 验 的 程 序 可 以 是Java 应 用 程 序、Applet、 类 库 或JavaBean 程 序 等 等。
下 面 列 出 了 满 足100 % 纯Java 标 准 的 大 体 原 则。
原 则 一: 没 有 本 地 方 法
引 入 本 地 代 码 会 牺 牲 大 部 分Java 的 优 点: 安 全 性、 平 台 无 关 性、 无 用 单 元 收 集 等。 一 个 这 样 的 程 序 将 失 去 对 病 毒 的 免 疫 力, 而 且, 如 果 本 地 方 法 的 指 针 越 界 或 是 访 问 保 护 内 存 区, 可 能 会 引 起Java 虚 拟 机 崩 溃。
原 则 二: 使 用Java 核 心API
Java API 是 开 发 程 序 的 基 本 框 架, 为 开 发JavaBean 构 件,applet、Java 应 用 程 序 形 成 了 标 准 接 口。Java API 包 括 两 部 分:Java 核 心API 和Java 标 准 扩 展API。100 % 纯Java 程 序 必 须 符 合Java 核 心API。
Java 核 心API 提 供 了 非 常 基 本 的 语 言, 输 入/ 输 出、 网 络、 图 形 用 户 界 面 和applet 等 功 能。 获 得Java 技 术 许 可 证 的 操 作 系 统 开 发 商 有 责 任 把 核 心API 包 括 在 它 们 的 平 台 上。 因 此 用 核 心API 所 写 的Java 程 序 就 有 可 能 在 任 何Java 平 台 上 运 行。
原 则 三: 使 用 纯Java 库
被Java 程 序 所 引 用 的Java 库 必 须 是100 % 纯Java 的, 以 便 保 证 引 用 它 们 的 程 序 依 旧 保 持 纯Java 的 特 性。
这 三 条 原 则 仅 指 出100 % 纯Java 最 重 要 的 特 性, 完 整 的 细 节 规 则 请 参 见Sun 公 司 发 布 的100 % 纯Java 开 发 者 手 册( 开 发 人 员 可 在http://www.java.sun.com/developers/ 得 到 它)。
三、Java 工 具
Java 出 现 以 来, 它 的 各 种 优 良 特 性 吸 引 了 大 批 软 件 公 司 的 注 意。 这 些 公 司 或 是 在 自 己 的 产 品 中 加 入Java 平 台 技 术 或 是 为Java 开 发 各 种 工 具。 在 这 一 部 分, 我 们 将 简 单 介 绍 几 种 目 前 最 流 行 的 工 具, 其 中 包 括 开 发 工 具 和 浏 览 工 具。
1. Java 开 发 工 具
只 要 有 程 序 语 言 必 然 有 相 应 的 开 发 工 具。 最 初 的 命 令 行 方 式 的 开 发 工 具JDK 对 于 程 序 开 发 不 太 方 便。 因 此, 许 多 公 司 为 编 程 人 员 提 供 了 更 方 便 的Java 编 程 工 具。 最 主 要 的 三 家 是Symantec、Microsoft 和Sun。
第 一 个 推 出 具 有 完 全 特 性 的 集 成 开 发 环 境 的 公 司 是Symantec。 它 的Java 产 品 叫Symantec cafe, 最 新 版 本 是1.51。 其 优 点 是:(1) 是 一 个 集 成 开 发 环 境;(2) 编 译、 运 行 速 度 快;(3) 制 作 用 户 界 面 十 分 方 便。 它 的 缺 点 是:(1) 编 辑, 查 找 功 能 不 够 强 大;(2) 把 汉 字 当 作 双 字 节;(3) 帮 助 不 够 详 细。
Symantec cafe 的 上 述 缺 点 是 相 对 于 微 软 的Visual J++ 来 说 的。Visual J++ 最 新 版 本1.1 随 微 软 的Visual Studio 97 套 件 发 布。Visual J++ 界 面 同 其 他Visual 系 列 产 品 界 面 相 似, 使 得 众 多Visual 工 具 的 用 户 可 以 非 常 容 易 地 学 会 使 用Visual J++。 但Visual J++ 最 大 缺 点 是 工 具 界 面 比 较 复 杂, 没 有 使 用 过 微 软 开 发 工 具 的 用 户 使 用 起 来 会 有 些 困 难。 另 外, 与Cafe 相 比 较, 在 开 发 用 户 界 面 时,Visual J++ 提 供 的Resource Wizard 没 有 和 源 代 码 文 件 集 成 在 一 起, 还 需 要 从 事 许 多 操 作, 并 需 要 人 工 添 加 处 理 事 件 消 息 的 代 码, 不 太 方 便。
Java Workshop 是Sun 公 司 于1996 年 中 推 出 的 全 部 用Java 实 现 的 集 成 开 发 环 境。 因 此, 它 具 有 可 移 植 性。 另 外Java Workshop 继 承 了HotJava 作 为Web 浏 览 器 的 功 能, 这 是Workshop 作 为 开 发 工 具 的 特 色, 因 为 其 他 工 具 没 有 浏 览 器 的 功 能, 编 写 的 小 程 序 需 要 用Web 浏 览 器 或appletviewer 来 观 察 结 果。 但 是, 由 于Workshop 是 用Java 实 现 的, 因 此, 运 行 开 发 非 常 慢。 此 外, 从 调 试 工 具 来 讲,Workshop 也 显 笨 拙, 需 要 进 一 步 改 进。
2. 支 持 的Web 浏 览 器
Web 浏 览 器 要 支 持Java 必 须 内 带Java 虚 拟 机。 这 些 支 持Java 的 浏 览 器 除 了 作 为WWW 浏 览 工 具 外, 也 可 以 作 为 开 发 人 员 调 试 小 程 序 的 运 行 环 境。 目 前, 几 种 主 要 的 浏 览 器HotJava、Internet Explorer 和Netscape Navigator 等 都 具 有Java 浏 览 功 能。
由Sun 公 司 开 发 的HotJava 是 第 一 个 支 持Java 的 浏 览 器。 事 实 上,HotJava 完 全 用Java 写 成, 证 明 了Java 的 性 能 和 灵 活 性。Sun 把HotJava 定 成 新 的 网 络 应 用 程 序 开 发 工 具 而 不 是 传 统 的 浏 览 器, 即Sun 会 给 浏 览 器 增 加 新 的API 为 生 成 基 于Java 的 应 用 程 序 开 辟 更 容 易 的 途 径。 另 外,HotJava 还 能 够 运 行 在 基 于Java OS 的 网 络 计 算 机 上 成 为 重 要 的Internet/Intranet 应 用 软 件。
Navigator 是Netscape 通 信 公 司 的 起 家 产 品。 目 前, 它 占 据 了 浏 览 器 的 大 份 额 市 场, 最 新 版4.0 改 名 为Communicator, 除 改 进 原 有 版 本 功 能 外, 还 增 加 了 许 多 新 特 性。 另 外,Navigator 在3.0 版 本 中 就 加 入 了 加 速 计 算 的JIT 编 译 器, 运 行Java 小 程 序 的 速 度 比 以 前 的 版 本 更 快。
Microsoft 的Web 浏 览 器 是Internet Explorer, 目 前 的 最 新 版 本 也 是4.0。 作 为 浏 览 器 中 的 后 起 之 秀,Explorer 正 在 逐 渐 占 据 更 多 的 市 场 份 额, 动 摇Netscape 的 主 导 地 位。Explorer 在3.0 版 本 中 才 支 持Java, 并 且 使 用JIT 编 译 器 加 速 程 序 运 行。Explorer 最 大 的 优 点 是 整 个 软 件 运 行 速 度 快。
文 章 来 源: 微 电 脑 世 界. 1997(9)