1、Java 平 台 由 Java 虚 拟 机 ( Java Virtual Machine) 和 Java 应 用 编 程 接口 ( Application Programming Interface、 简 称 API) 构 成 。 Java 应 用编 程 接 口 为 Java 应 用 提 供 了 一 个 独 立 于 操 作 系 统 的 标 准 接 口 , 可 分 为 基 本部 分 和 扩 展 部 分 。 在 硬 件 或 操 作 系 统 平 台 上 安 装 一 个 Java 平 台 之 后 ,Java 应 用 程 序 就 可 运 行 。 现 在 Java 平 台 已 经 嵌 入 了 几 乎 所
2、有 的 操 作 系 统 。这 样 Java 程 序 可 以 只 编 译 一 次 , 就 可 以 在 各 种 系 统 中 运 行 。 Java 应 用 编程 接 口 已 经 从 1.1x 版 发 展 到 1.2 版 。 目 前 常 用 的 Java 平 台 基 于Java1.5, 最 近 版 本 为 Java1.7。 Java 分 为 三 个 体 系 JavaSE(Java2 Platform Standard Edition, java平 台 标 准 版 ), JavaEE(Java 2 Platform,Enterprise Edition, java 平 台企 业 版 ), JavaME(
3、Java 2 Platform Micro Edition, java 平 台 微 型 版 )。 JAVA* Java SE( Java Platform, Standard Edition) 。 Java SE 以 前 称 为 J2SE。 它 允 许 开 发 和 部 署 在 桌 面 、 服 务 器 、 嵌 入 式 环 境 和 实 时 环 境 中 使 用 的 Java 应 用 程 序 。 Java SE 包 含 了 支 持 Java Web 服 务 开 发 的 类 , 并 为 Java Platform, Enterprise Edition( Java EE) 提 供 基 础 。 * Jav
4、a EE( Java Platform, Enterprise Edition) 。 这 个 版 本 以 前称 为 J2EE。 企 业 版 本 帮 助 开 发 和 部 署 可 移 植 、 健 壮 、 可 伸 缩 且 安 全 的 服 务器 端 Java 应 用 程 序 。 Java EE 是 在 Java SE 的 基 础 上 构 建 的 , 它 提 供 Web 服 务 、 组 件 模 型 、 管 理 和 通 信 API, 可 以 用 来 实 现 企 业 级 的 面 向 服 务体 系 结 构 ( service-oriented architecture, SOA) 和 Web 2.0 应 用
5、程 序 。* Java ME( Java Platform, Micro Edition) 。 这 个 版 本 以 前 称 为 J2ME。 Java ME 为 在 移 动 设 备 和 嵌 入 式 设 备 ( 比 如 手 机 、 PDA、 电 视 机 顶 盒和 打 印 机 ) 上 运 行 的 应 用 程 序 提 供 一 个 健 壮 且 灵 活 的 环 境 。 Java ME 包 括灵 活 的 用 户 界 面 、 健 壮 的 安 全 模 型 、 许 多 内 置 的 网 络 协 议 以 及 对 可 以 动 态下 载 的 连 网 和 离 线 应 用 程 序 的 丰 富 支 持 。 基 于 Java M
6、E 规 范 的 应 用 程 序 只需 编 写 一 次 , 就 可 以 用 于 许 多 设 备 , 而 且 可 以 利 用 每 个 设 备 的 本 机 功 能 。 2009 年 04 月 20 日 , oracle( 甲 骨 文 )宣 布 收 购 sun。 1991 年 , Sun 公 司 的 James Gosling。 Bill Joe 等 人 , 为 电 视 、 控 制烤 面 包 机 等 家 用 电 器 的 交 互 操 作 开 发 了 一 个 Oak( 一 种 橡 树 的 名 字 ) 软 件 ,他 是 Java 的 前 身 。 当 时 , Oak 并 没 有 引 起 人 们 的 注 意 ,
7、 直 到 1994 年 , 随着 互 联 网 和 3W 的 飞 速 发 展 , 他 们 用 Java 编 制 了 HotJava 浏 览 器 , 得 到 了Sun 公 司 首 席 执 行 官 Scott McNealy 的 支 持 , 得 以 研 发 和 发 展 。 为 了 促 销 和法 律 的 原 因 , 1995 年 Oak 更 名 为 Java。 Java 的 得 名 还 有 段 小 插 曲 呢 , 一 天 ,Java 小 组 成 员 正 在 喝 咖 啡 时 , 议 论 给 新 语 言 起 个 什 么 名 字 的 问 题 , 有 人 提 议用 Java( Java 是 印 度 尼 西 亚
8、 盛 产 咖 啡 的 一 个 岛 屿 ) , 这 个 提 议 得 到 了 其 他成 员 的 赞 同 , 于 是 就 采 用 Java 来 命 名 此 新 语 言 。 很 快 Java 被 工 业 界 认 可 ,许 多 大 公 司 如 IBM Microsoft.DEC 等 购 买 了 Java 的 使 用 权 , 并 被 美 国 杂 志PC Magazine 评 为 1995 年 十 大 优 秀 科 技 产 品 。 从 此 , 开 始 了 Java 应 用 的新 篇 章 。 Java 的 诞 生 是 对 传 统 计 算 机 模 式 的 挑 战 , 对 计 算 机 软 件 开 发 和 软 件 产
9、业 都 产 生 了 深 远 的 影 响 : ( 1) 软 件 4A 目 标 要 求 软 件 能 达 到 任 何 人 在 任 何 地 方 在 任 何 时 间 对 任 何电 子 设 备 都 能 应 用 。 这 样 能 满 足 软 件 平 台 上 互 相 操 作 , 具 有 可 伸 缩 性 和 重 用性 并 可 即 插 即 用 等 分 布 式 计 算 模 式 的 需 求 。 ( 2) 基 于 构 建 开 发 方 法 的 崛 起 , 引 出 了 CORBA 国 际 标 准 软 件 体 系 结 构和 多 层 应 用 体 系 框 架 。 在 此 基 础 上 形 成 了 Java.2 平 台 和 .NET
10、平 台 两 大 派系 , 推 动 了 整 个 IT 业 的 发 展 。 ( 3) 对 软 件 产 业 和 工 业 企 业 都 产 生 了 深 远 的 影 响 , 软 件 从 以 开 发 为 中心 转 到 了 以 服 务 为 中 心 。 中 间 提 供 商 , 构 件 提 供 商 , 服 务 器 软 件 以 及 咨 询服 务 商 出 现 。 企 业 必 须 重 塑 自 我 , B2B 的 电 子 商 务 将 带 动 整 个 新 经 济 市 场 ,使 企 业 获 得 新 的 价 值 , 新 的 增 长 , 新 的 商 机 , 新 的 管 理 。 ( 4) 对 软 件 开 发 带 来 了 新 的 革
11、 命 , 重 视 使 用 第 三 方 构 件 集 成 , 利 用 平台 的 基 础 设 施 服 务 , 实 现 开 发 各 个 阶 段 的 重 要 技 术 , 重 视 开 发 团 队 的 组 织 和文 化 理 念 , 协 作 , 创 作 , 责 任 , 诚 信 是 人 才 的 基 本 素 质 。 总 之 , 目 前 以 看 到 了 Java 对 信 息 时 代 的 重 要 性 , 未 来 还 会 不 断 发 展 ,Java 在 应 用 方 面 将 会 有 更 广 阔 的 前 景 。 编 辑 本 段 名 字 起 源Java 自 1995 诞 生 , 至 今 已 经 15 年 历 史 。 Java
12、 的 名 字 的 来 源 : Java是 印 度 尼 西 亚 爪 哇 岛 的 英 文 名 称 , 因 盛 产 咖 啡 而 闻 名 。 Java 语 言 中 的 许 多库 类 名 称 , 多 与 咖 啡 有 关 , 如 JavaBeans(咖 啡 豆 )、 NetBeans(网 络 豆 )以及 ObjectBeans (对 象 豆 )等 等 。 SUN 和 JAVA 的 标 识 也 正 是 一 杯 正 冒 着 热 气的 咖 啡 。 据 James Gosling 回 忆 , 最 初 这 个 为 TV 机 顶 盒 所 设 计 的 语 言 在 Sun 内部 一 直 称 为 Green 项 目 。 我
13、 们 的 新 语 言 需 要 一 个 名 字 。 Gosling 注 意 到 自己 办 公 室 外 一 棵 茂 密 的 橡 树 Oak, 这 是 一 种 在 硅 谷 很 常 见 的 树 。 所 以 他 将 这个 新 语 言 命 名 为 Oak。 但 Oak 是 另 外 一 个 注 册 公 司 的 名 字 。 这 个 名 字 不 可 能再 用 了 。 在 命 名 征 集 会 上 , 大 家 提 出 了 很 多 名 字 。 最 后 按 大 家 的 评 选 次 序 , 将 十几 个 名 字 排 列 成 表 , 上 报 给 商 标 律 师 。 排 在 第 一 位 的 是 Silk(丝 绸 )。 尽 管
14、大 家 都 喜 欢 这 个 名 字 , 但 遭 到 James Gosling 的 坚 决 反 对 。 排 在 第 二 和 第三 的 都 没 有 通 过 律 师 这 一 关 。 只 有 排 在 第 四 位 的 名 字 、 得 到 了 所 有 人 的 认 可和 律 师 的 通 过 , 这 个 名 字 就 是 Java。 10 多 年 来 , Java 就 像 爪 哇 咖 啡 一 样 誉 满 全 球 , 成 为 实 至 名 归 的 企 业 级应 用 平 台 的 霸 主 。 而 Java 语 言 也 如 同 咖 啡 一 般 醇 香 动 人 。 编 辑 本 段 历 史早 期 的 JavaJava 平
15、台 和 语 言 最 开 始 只 是 升 阳 公 司 在 1990 年 12 开 始 研 究 的 一 个 内部 项 目 。 升 阳 公 司 的 一 个 叫 做 帕 特 里 克 诺 顿 的 工 程 师 被 升 阳 自 己 开 发 的 C 和 C 语 言 编 译 器 搞 得 焦 头 烂 额 , 因 为 其 中 的 API 极 其 难 用 。 帕 特 里 克 决 定改 用 NeXT, 同 时 他 也 获 得 了 研 究 公 司 的 一 个 叫 做 “Stealth 计 划 ”的 项 目的 机 会 。 “Stealth 计 划 ”后 来 改 名 为 “Green 计 划 ”, 詹 姆 斯 高 斯 林 和
16、 麦 克舍 林 丹 也 加 入 了 帕 特 里 克 的 工 作 小 组 。 他 们 和 其 他 几 个 工 程 师 一 起 在 加 利福 尼 亚 州 门 罗 帕 克 市 沙 丘 路 的 一 个 小 工 作 室 里 面 研 究 开 发 新 技 术 , 瞄 准 下 一代 智 能 家 电 ( 如 微 波 炉 ) 的 程 序 设 计 , 升 阳 公 司 预 料 未 来 科 技 将 在 家 用 电器 领 域 大 显 身 手 。 团 队 最 初 考 虑 使 用 C 语 言 , 但 是 很 多 成 员 包 括 升 阳 的 首席 科 学 家 比 尔 乔 伊 , 发 现 C 和 可 用 的 API 在 某 些
17、方 面 存 在 很 大 问 题 。 工 作 小 组 使 用 的 是 内 嵌 类 型 平 台 , 可 以 用 的 资 源 极 其 有 限 。 很 多 成 员 发现 C 太 复 杂 以 至 很 多 开 发 者 经 常 错 误 使 用 。 他 们 发 现 C 缺 少 垃 圾 回 收 系 统 ,还 有 可 移 植 的 安 全 性 、 分 布 程 序 设 计 、 和 多 线 程 功 能 。 最 后 , 他 们 想 要 一 种易 于 移 植 到 各 种 设 备 上 的 平 台 。 根 据 可 用 的 资 金 , 比 尔 乔 伊 决 定 开 发 一 种 集 C 语 言 和 Mesa 语 言 大 成的 新 语
18、 言 , 在 一 份 报 告 上 , 乔 伊 把 它 叫 做 “未 来 ”, 他 提 议 升 阳 公 司 的 工程 师 应 该 在 C 的 基 础 上 , 开 发 一 种 面 向 对 象 的 环 境 。 最 初 , 高 斯 林 试 图 修改 和 扩 展 C 的 功 能 , 他 自 己 称 这 种 新 语 言 为 C -, 但 是 后 来 他 放 弃 了 。他 将 要 创 造 出 一 种 全 新 的 语 言 , 被 他 命 名 为 “Oak”( 橡 树 ) ,以 他 的 办 公室 外 的 树 而 命 名 。 就 像 很 多 开 发 新 技 术 的 秘 密 的 工 程 一 样 , 工 作 小 组
19、没 日 没 夜 地 工 作 到 了1992 年 的 夏 天 , 他 们 能 够 演 示 新 平 台 的 一 部 分 了 , 包 括 Green 操 作 系 统 ,Oak 的 程 序 设 计 语 言 , 类 库 , 和 其 硬 件 。 最 初 的 尝 试 是 面 向 一 种 类 PDA 设备 , 被 命 名 为 Star7, 这 种 设 备 有 鲜 艳 的 图 形 界 面 和 被 称 为 “Duke”的 智能 代 理 来 帮 助 用 户 。 1992 年 12 月 3 日 , 这 台 设 备 进 行 了 展 示 。 同 年 11 月 , Green 计 划 被 转 化 成 了 “FirstPer
20、son 有 限 公 司 ”, 一 个升 阳 公 司 的 全 资 子 公 司 , 团 队 也 被 重 新 安 排 到 了 帕 洛 阿 尔 托 。FirstPerson 团 队 对 建 造 一 种 高 度 互 动 的 设 备 感 兴 趣 , 当 时 代 华 纳 发 布 了 一个 关 于 电 视 机 顶 盒 的 征 求 提 议 书 时 ( Request for proposal) ,FirstPerson 改 变 了 他 们 的 目 标 , 作 为 对 征 求 意 见 书 的 响 应 , 提 出 了 一 个机 顶 盒 平 台 的 提 议 。 但 是 有 线 电 视 业 界 觉 得 FirstPer
21、son 的 平 台 给 予 用 户过 多 地 控 制 权 , 因 此 FirstPerson 的 投 标 败 给 了 SGI。 与 3DO 公 司 的 另 外一 笔 关 于 机 顶 盒 的 交 易 也 没 有 成 功 , 由 于 他 们 的 平 台 不 能 在 电 视 工 业 产 生 任何 效 益 , 公 司 再 并 回 升 阳 公 司 。 JAVA 遭 遇 互 联 网JAVA 应 用1994 年 6、 7 月 间 , 在 经 历 了 一 场 历 时 三 天 的 头 脑 风 暴 的 讨 论 后 , 约 翰 盖吉 、 詹 姆 斯 高 斯 林 、 比 尔 乔 伊 、 帕 特 里 克 诺 顿 、 韦
22、 恩 罗 斯 因 和 埃 里 克斯 库 米 , 团 队 决 定 再 一 次 改 变 了 努 力 的 目 标 , 这 次 他 们 决 定 将 该 技 术 应 用于 万 维 网 。 他 们 认 为 随 着 Mosaic 浏 览 器 的 到 来 , 因 特 网 正 在 向 同 样 的 高 度互 动 的 远 景 演 变 , 而 这 一 远 景 正 是 他 们 在 有 线 电 视 网 中 看 到 的 。 作 为 原 型 ,帕 特 里 克 诺 顿 写 了 一 个 小 型 万 维 网 浏 览 器 , WebRunner, 后 来 改 名 为HotJava。 同 年 , Oak 改 名 为 Java。 商 标
23、 搜 索 显 示 , Oak 已 被 一 家 显 卡 制造 商 注 册 , 因 此 团 队 找 到 了 一 个 新 名 字 。 这 个 名 字 是 在 很 多 成 员 常 去 的 本 地咖 啡 馆 中 杜 撰 出 来 的 。 名 字 是 不 是 首 字 母 缩 写 还 不 清 楚 , 很 大 程 度 上 来 说 不是 。 虽 然 有 人 声 称 是 开 发 人 员 名 字 的 组 合 : James Gosling( 詹 姆 斯 高 斯林 ) Arthur Van Hoff( 阿 瑟 凡 霍 夫 ) Andy Bechtolsheim( 安 迪 贝克 托 克 姆 ) , 或 “Just Ano
24、ther Vague Acronym”( 只 是 另 外 一 个 含 糊 的缩 写 ) 。 还 有 一 种 比 较 可 信 的 说 法 是 这 个 名 字 是 出 于 对 咖 啡 的 喜 爱 , 所 以 以Java 咖 啡 来 命 名 。 类 文 件 的 前 四 个 字 节 如 果 用 十 六 进 制 阅 读 的 话 , 分 别 为 CA FE BA BE, 就 会 拼 出 两 个 单 词 “CAFE BABE”( 咖 啡 宝 贝 ) 。 1994 年 10 月 , HotJava 和 Java 平 台 为 公 司 高 层 进 行 演 示 。 1994 年 ,Java 1.0a 版 本 已 经
25、 可 以 提 供 下 载 , 但 是 Java 和 HotJava 浏 览 器 的 第 一 次公 开 发 布 却 是 在 1995 年 3 月 23 日 SunWorld 大 会 上 进 行 的 。 升 阳 公 司 的 科学 指 导 约 翰 盖 吉 宣 告 Java 技 术 。 这 个 发 布 是 与 网 景 公 司 的 执 行 副 总 裁 马 克安 德 森 的 惊 人 发 布 一 起 进 行 的 , 宣 布 网 景 将 在 其 浏 览 器 中 包 含 对 Java 的支 持 。 1996 年 1 月 , 升 阳 公 司 成 立 了 Java 业 务 集 团 , 专 门 开 发 Java 技
26、术 。编 辑 本 段 语 言 特 点Java 是 一 种 简 单 的 , 面 向 对 象 的 , 分 布 式 的 , 解 释 型 的 , 健 壮 安 全 的 ,结 构 中 立 的 , 可 移 植 的 , 性 能 优 异 、 多 线 程 的 静 态 语 言 。 当 1995 年 SUN 推 出 Java 语 言 之 后 , 全 世 界 的 目 光 都 被 这 个 神 奇 的 语 言所 吸 引 。 那 么 Java 到 底 有 何 神 奇 之 处 呢 ? Java 语 言 其 实 最 早 诞 生 于 1991 年 , 起 初 被 称 为 OAK 语 言 , 是 SUN 公司 为 一 些 消 费 性
27、 电 子 产 品 而 设 计 的 一 个 通 用 环 境 。 他 们 最 初 的 目 的 只 是 为 了开 发 一 种 独 立 于 平 台 的 软 件 技 术 , 而 且 在 网 络 出 现 之 前 , OAK 可 以 说 是 默默 无 闻 , 甚 至 差 点 夭 折 。 但 是 , 网 络 的 出 现 改 变 了 OAK 的 命 运 。 在 Java 出 现 以 前 , Internet 上 的 信 息 内 容 都 是 一 些 乏 味 死 板 的 HTML文 档 。 这 对 于 那 些 迷 恋 于 WEB 浏 览 的 人 们 来 说 简 直 不 可 容 忍 。 他 们 迫 切 希 望能 在
28、WEB 中 看 到 一 些 交 互 式 的 内 容 , 开 发 人 员 也 极 希 望 能 够 在 WEB 上 创 建一 类 无 需 考 虑 软 硬 件 平 台 就 可 以 执 行 的 应 用 程 序 , 当 然 这 些 程 序 还 要 有 极 大的 安 全 保 障 。 对 于 用 户 的 这 种 要 求 , 传 统 的 编 程 语 言 显 得 无 能 为 力 。 SUN的 工 程 师 敏 锐 地 察 觉 到 了 这 一 点 , 从 1994 年 起 , 他 们 开 始 将 OAK 技 术 应 用于 WEB 上 , 并 且 开 发 出 了 HotJava 的 第 一 个 版 本 。 当 SUN
29、 公 司 1995 年 正 式以 Java 这 个 名 字 推 出 的 时 候 , 几 乎 所 有 的 WEB 开 发 人 员 都 心 生 感 叹 : 噢 ,这 正 是 我 想 要 的 ! 于 是 Java 成 了 一 颗 耀 眼 的 明 星 , 丑 小 鸭 一 下 子 变 成 了 白天 鹅 。 编 辑 本 段 主 要 特 性1、 Java 语 言 是 简 单 的 。 Java 语 言 的 语 法 与 C 语 言 和 C+语 言 很 接 近 ,使 得 大 多 数 程 序 员 很 容 易 学 习 和 使 用 Java。 另 一 方 面 , Java 丢 弃 了 C+ 中 很 少 使 用 的 、
30、很 难 理 解 的 、 令 人 迷 惑 的 那 些 特 性 , 如 操 作 符 重 载 、 多 继 承 、自 动 的 强 制 类 型 转 换 。 特 别 地 , Java 语 言 不 使 用 指 针 , 并 提 供 了 自 动 的 废料 收 集 , 使 得 程 序 员 不 必 为 内 存 管 理 而 担 忧 。 2、 Java 语 言 是 一 个 面 向 对 象 的 。 Java 语 言 提 供 类 、 接 口 和 继 承 等 原语 , 为 了 简 单 起 见 , 只 支 持 类 之 间 的 单 继 承 , 但 支 持 接 口 之 间 的 多 继 承 , 并支 持 类 与 接 口 之 间 的
31、实 现 机 制 ( 关 键 字 为 implements) 。 Java 语 言 全 面 支持 动 态 绑 定 , 而 C+ 语 言 只 对 虚 函 数 使 用 动 态 绑 定 。 总 之 , Java 语 言 是 一个 纯 的 面 向 对 象 程 序 设 计 语 言 。 3、 Java 语 言 是 分 布 式 的 。 Java 语 言 支 持 Internet 应 用 的 开 发 , 在 基本 的 Java 应 用 编 程 接 口 中 有 一 个 网 络 应 用 编 程 接 口 ( java net) , 它 提 供了 用 于 网 络 应 用 编 程 的 类 库 , 包 括 URL、 URL
32、Connection、 Socket、 ServerSocket 等 。 Java 的 RMI(远 程 方 法 激 活 )机 制 也 是 开 发 分 布 式 应 用 的重 要 手 段 。 4、 Java 语 言 是 健 壮 的 。 Java 的 强 类 型 机 制 、 异 常 处 理 、 废 料 的 自 动收 集 等 是 Java 程 序 健 壮 性 的 重 要 保 证 。 对 指 针 的 丢 弃 是 Java 的 明 智 选 择 。Java 的 安 全 检 查 机 制 使 得 Java 更 具 健 壮 性 。 5、 Java 语 言 是 安 全 的 。 Java 通 常 被 用 在 网 络
33、环 境 中 , 为 此 , Java 提供 了 一 个 安 全 机 制 以 防 恶 意 代 码 的 攻 击 。 除 了 Java 语 言 具 有 的 许 多 安 全 特性 以 外 , Java 对 通 过 网 络 下 载 的 类 具 有 一 个 安 全 防 范 机 制 ( 类ClassLoader) , 如 分 配 不 同 的 名 字 空 间 以 防 替 代 本 地 的 同 名 类 、 字 节 代 码检 查 , 并 提 供 安 全 管 理 机 制 ( 类 SecurityManager) 让 Java 应 用 设 置 安 全哨 兵 。 6、 Java 语 言 是 体 系 结 构 中 立 的 。
34、 Java 程 序 ( 后 缀 为 java 的 文 件 ) 在Java 平 台 上 被 编 译 为 体 系 结 构 中 立 的 字 节 码 格 式 ( 后 缀 为 class 的 文 件 ) , 然 后 可 以 在 实 现 这 个 Java 平 台 的 任 何 系 统 中 运 行 。 这 种 途 径 适 合 于 异 构 的网 络 环 境 和 软 件 的 分 发 。 7、 Java 语 言 是 可 移 植 的 。 这 种 可 移 植 性 来 源 于 体 系 结 构 中 立 性 , 另 外 ,Java 还 严 格 规 定 了 各 个 基 本 数 据 类 型 的 长 度 。 Java 系 统 本
35、身 也 具 有 很 强 的可 移 植 性 , Java 编 译 器 是 用 Java 实 现 的 , Java 的 运 行 环 境 是 用 ANSI C实 现 的 。 8、 Java 语 言 是 解 释 型 的 。 如 前 所 述 , Java 程 序 在 Java 平 台 上 被 编 译为 字 节 码 格 式 , 然 后 可 以 在 实 现 这 个 Java 平 台 的 任 何 系 统 中 运 行 。 在 运行 时 , Java 平 台 中 的 Java 解 释 器 对 这 些 字 节 码 进 行 解 释 执 行 , 执 行 过 程 中需 要 的 类 在 联 接 阶 段 被 载 入 到 运
36、行 环 境 中 。 9、 Java 是 高 性 能 的 。 与 那 些 解 释 型 的 高 级 脚 本 语 言 相 比 , Java 的 确是 高 性 能 的 。 事 实 上 , Java 的 运 行 速 度 随 着 JIT(Just-In-Time)编 译 器 技术 的 发 展 越 来 越 接 近 于 C+。 10、 Java 语 言 是 多 线 程 的 。 在 Java 语 言 中 , 线 程 是 一 种 特 殊 的 对 象 ,它 必 须 由 Thread 类 或 其 子 ( 孙 ) 类 来 创 建 。 通 常 有 两 种 方 法 来 创 建 线 程 :其 一 , 使 用 型 构 为 Th
37、read(Runnable) 的 构 造 子 将 一 个 实 现 了 Runnable 接口 的 对 象 包 装 成 一 个 线 程 , 其 二 , 从 Thread 类 派 生 出 子 类 并 重 写 run 方 法 ,使 用 该 子 类 创 建 的 对 象 即 为 线 程 。 值 得 注 意 的 是 Thread 类 已 经 实 现 了Runnable 接 口 , 因 此 , 任 何 一 个 线 程 均 有 它 的 run 方 法 , 而 run 方 法 中 包含 了 线 程 所 要 运 行 的 代 码 。 线 程 的 活 动 由 一 组 方 法 来 控 制 。 Java 语 言 支持 多
38、 个 线 程 的 同 时 执 行 , 并 提 供 多 线 程 之 间 的 同 步 机 制 ( 关 键 字 为synchronized) 。 11、 Java 语 言 是 动 态 的 。 Java 语 言 的 设 计 目 标 之 一 是 适 应 于 动 态 变 化的 环 境 。 Java 程 序 需 要 的 类 能 够 动 态 地 被 载 入 到 运 行 环 境 , 也 可 以 通 过 网 络来 载 入 所 需 要 的 类 。 这 也 有 利 于 软 件 的 升 级 。 另 外 , Java 中 的 类 有 一 个 运行 时 刻 的 表 示 , 能 进 行 运 行 时 刻 的 类 型 检 查 。
39、 Java 语 言 的 优 良 特 性 使 得 Java 应 用 具 有 无 比 的 健 壮 性 和 可 靠 性 , 这 也减 少 了 应 用 系 统 的 维 护 费 用 。 Java 对 对 象 技 术 的 全 面 支 持 和 Java 平 台 内嵌 的 API 能 缩 短 应 用 系 统 的 开 发 时 间 并 降 低 成 本 。 Java 的 编 译 一 次 , 到 处可 运 行 的 特 性 使 得 它 能 够 提 供 一 个 随 处 可 用 的 开 放 结 构 和 在 多 平 台 之 间 传 递信 息 的 低 成 本 方 式 。 特 别 是 Java 企 业 应 用 编 程 接 口 (
40、 Java Enterprise APIs) 为 企 业 计 算 及 电 子 商 务 应 用 系 统 提 供 了 有 关 技 术 和 丰 富 的 类 库 。 编 辑 本 段 相 关 技 术1、 JDBC( Java Database Connectivity) 提 供 连 接 各 种 关 系 数 据 库 的统 一 接 口 ,可 以 为 多 种 关 系 数 据 库 提 供 统 一 访 问 , 它 由 一 组 用 Java 语 言 编写 的 类 和 接 口 组 成 。 JDBC 为 工 具 /数 据 库 开 发 人 员 提 供 了 一 个 标 准 的API, 据 此 可 以 构 建 更 高 级 的
41、 工 具 和 接 口 , 使 数 据 库 开 发 人 员 能 够 用 纯 Java API 编 写 数 据 库 应 用 程 序 , 同 时 , JDBC 也 是 个 商 标 名 。 2、 EJB(Enterprise JavaBeans)使 得 开 发 者 方 便 地 创 建 、 部 署 和 管 理 跨平 台 的 基 于 组 件 的 企 业 应 用 。 3、 Java RMI(Java Remote Method Invocation)用 来 开 发 分 布 式 Java应 用 程 序 。 一 个 Java 对 象 的 方 法 能 被 远 程 Java 虚 拟 机 调 用 。 这 样 , 远
42、程方 法 激 活 可 以 发 生 在 对 等 的 两 端 , 也 可 以 发 生 在 客 户 端 和 服 务 器 之 间 , 只要 双 方 的 应 用 程 序 都 是 用 Java 写 的 。 4、 Java IDL(Java Interface Definition Language) 提 供 与CORBA(Common Object Request Broker Architecture)的 无 缝 的 互 操 作 性 。这 使 得 Java 能 集 成 异 构 的 商 务 信 息 资 源 。 5、 JNDI(Java Naming and Directory Interface)提 供
43、从 Java 平 台 到的 统 一 的 无 缝 的 连 接 。 这 个 接 口 屏 蔽 了 企 业 网 络 所 使 用 的 各 种 命 名 和 目 录 服务 。 6、 JMAPI( Java Management API) 为 异 构 网 络 上 系 统 、 网 络 和 服 务 管理 的 开 发 提 供 一 整 套 丰 富 的 对 象 和 方 法 。 7、 JMS(Java Message Service)提 供 企 业 消 息 服 务 , 如 可 靠 的 消 息 队列 、 发 布 和 订 阅 通 信 、 以 及 有 关 推 拉 ( Push/Pull) 技 术 的 各 个 方 面 。 8、
44、JTS(Java transaction Service)提 供 存 取 事 务 处 理 资 源 的 开 放 标准 , 这 些 事 务 处 理 资 源 包 括 事 务 处 理 应 用 程 序 、 事 务 处 理 管 理 及 监 控 。 9、 JMF(Java Media Framework API), 她 可 以 帮 助 开 发 者 把 音 频 、 视频 和 其 他 一 些 基 于 时 间 的 媒 体 放 到 Java 应 用 程 序 或 applet 小 程 序 中 去 ,为 多 媒 体 开 发 者 提 供 了 捕 捉 、 回 放 、 编 解 码 等 工 具 , 是 一 个 弹 性 的 、
45、跨 平 台的 多 媒 体 解 决 方 案 。 10、 Annotation(Java Annotation),在 已 经 发 布 的 JDK1.5(tiger)中增 加 新 的 特 色 叫 Annotation。 Annotation 提 供 一 种 机 制 , 将 程 序 的 元 素 如 :类 ,方 法 , 属 性 , 参 数 , 本 地 变 量 , 包 和 元 数 据 联 系 起 来 。 这 样 编 译 器 可 以 将 元数 据 存 储 在 Class 文 件 中 。 这 样 虚 拟 机 和 其 它 对 象 可 以 根 据 这 些 元 数 据 来 决定 如 何 使 用 这 些 程 序 元
46、素 或 改 变 它 们 的 行 为 。 在 Java 技 术 中 , 值 得 关 注 的 还 有 JavaBeans, 它 是 一 个 开 放 的 标 准 的组 件 体 系 结 构 , 它 独 立 于 平 台 , 但 使 用 Java 语 言 。 一 个 JavaBean 是 一 个满 足 JavaBeans 规 范 的 Java 类 , 通 常 定 义 了 一 个 现 实 世 界 的 事 物 或 概 念 。一 个 JavaBean 的 主 要 特 征 包 括 属 性 、 方 法 和 事 件 。 通 常 , 在 一 个 支 持JavaBeans 规 范 的 开 发 环 境 ( 如 Sun Ja
47、va Studio 和 IBM VisualAge for Java) 中 , 可 以 可 视 地 操 作 JavaBean, 也 可 以 使 用 JavaBean 构 造 出 新 的JavaBean。 JavaBean 的 优 势 还 在 于 Java 带 来 的 可 移 植 性 。 现 在 , EJB (Enterprise JavaBeans) 将 JavaBean 概 念 扩 展 到 Java 服 务 端 组 件 体 系 结构 , 这 个 模 型 支 持 多 层 的 分 布 式 对 象 应 用 。 除 了 JavaBeans, 典 型 的 组 件体 系 结 构 还 有 DCOM 和 C
48、ORBA, 关 于 这 些 组 件 体 系 结 构 的 深 入 讨 论 超 出 了 本书 的 范 围 。 11、 javaFX Sun 刚 刚 发 布 了 JavaFX 技 术 的 正 式 版 ,它 使 您 能 利 用 JavaFX 编 程 语 言 开 发 富 互 联 网 应 用 程 序 (RIA)。 JavaFX Script 编 程 语 言( 以 下 称 为 JavaFX) 是 Sun 微 系 统 公 司 开 发 的 一 种 declarative, staticallytyped(声 明 性 的 、 静 态 类 型 )脚 本 语 言 。 JavaFX 技 术 有 着 良 好的 前 景 ,
49、 包 括 可 以 直 接 调 用 Java API 的 能 力 。 因 为 JavaFXScript 是 静 态类 型 , 它 同 样 具 有 结 构 化 代 码 、 重 用 性 和 封 装 性 , 如 包 、 类 、 继 承 和 单 独 编译 和 发 布 单 元 , 这 些 特 性 使 得 使 用 Java 技 术 创 建 和 管 理 大 型 程 序 变 为 可 能 。12、 JMX( Java Management Extensions, 即 Java 管 理 扩 展 ) 是 一 个为 应 用 程 序 、 设 备 、 系 统 等 植 入 管 理 功 能 的 框 架 。 JMX 可 以 跨 越 一 系 列 异 构 操 作 系 统 平 台 、 系 统 体 系结 构 和 网 络 传 输 协 议 , 灵 活 的 开 发 无 缝 123456 集 成 的 系 统 、 网 络 和 服 务 管 理 应 用 。 13、 JPA (Java Persistence API), JPA 通 过 JDK 5.0 注 解 7或 XML描 述 对 象 关 系 表 的 映 射