第 1 章 Java 概 述 Java 的 诞 生 Java 的 特 点 Java 开 发 环 境 安 装 与 配 置 创 建 并 运 行 一 个 简 单 的 Java 程 序 Java 语 言 是 当 今 计 算 机 软 件 行 业 中 最 热 门 的 网 络 编 程 语 言, 以 Java 为 核 心 的 芯 片 技 术 编 译 技 术 数 据 库 连 接 技 术, 以 及 基 于 企 业 级 应 用 的 J2EE 技 术 得 到 了 迅 猛 的 发 展 Java 的 应 用 已 经 深 入 到 我 们 生 活 的 每 一 个 角 落 1.1 Java 的 诞 生 Java 的 发 展 历 史, 可 追 溯 到 1990 年 当 时 Sun 公 司 为 了 发 展 消 费 性 电 子 产 品 而 进 行 了 一 个 名 为 Green 的 项 目 计 划 该 计 划 负 责 人 是 James Gosling 起 初 他 以 C++ 来 写 一 种 嵌 入 式 程 序, 可 以 放 在 烤 面 包 机 或 PAD 等 小 型 电 子 消 费 设 备 的 芯 片 上, 使 得 机 器 更 智 能 但 他 发 现 C++ 并 不 适 合 完 成 这 类 任 务! 因 为 C++ 有 个 缺 点, 就 是 C++ 只 能 针 对 特 定 的 操 作 系 统 和 CPU 芯 片 进 行 编 译 这 样 一 来, 一 旦 电 子 设 备 更 换 了 操 作 系 统 或 CPU 芯 片 就 不 能 保 证 原 程 序 正 确 运 行, 可 能 程 序 员 需 要 修 改 程 序 并 针 对 新 的 操 作 系 统 或 CPU 芯 片 重 新 进 行 编 译 为 了 解 决 遇 到 的 问 题, Gosling 决 定 要 发 展 一 种 新 的 语 言, 来 解 决 C++ 的 潜 在 性 危 险 问 题, 这 个 语 言 名 叫 Oak(Green 小 组 成 员 公 司 楼 外 有 一 棵 橡 树 ) Oak 是 一 种 可 移 植 性 语 言, 也 就 是 一 种 平 台 独 立 语 言, 能 够 在 各 种 操 作 系 统 各 种 CPU 芯 片 上 运 行 1994 年,Oak 技 术 日 趋 成 熟, 这 时 网 络 正 开 始 蓬 勃 发 展 Oak 研 发 小 组 发 现 Oak 很 适 合 作 为 一 种 网 络 程 序 语 言 因 此 发 展 了 一 个 能 与 Oak 配 合 的 浏 览 器 WebRunner, 后 更 名 为 HotJava, 它 证 明 了 Oak 是 一 种 能 在 网 络 上 发 展 的 程 序 语 言 由 于 已 经 有 一 种 计 算 机 语 言 的 名 字 叫 Oak, 且 被 注 册 最 后, 工 程 师 们 便 想 到 以 自 己 常 享 用 的 咖 啡 (Java) 来 重 新 命 名 Java 是 印 度 尼 西 亚 一 个 盛 产 咖 啡 的 岛 屿, 中 文 译 名 为 爪 哇 1.2 Java 的 特 点 Java 是 一 种 简 单 的 面 向 对 象 的 分 布 式 的 解 释 的 健 壮 的 结 构 中 立 的 与 平 台 无 关 的 优 异 的 多 线 程 的 动 态 语 言, 也 是 目 前 使 用 最 为 广 泛 的 网 络 编 程 语 言 之 一
2 Java 语 言 程 序 设 计 教 程 1.2.1 简 单 性 Java 语 言 的 语 法 与 C 语 言 和 C++ 语 言 很 接 近, 使 得 大 多 数 程 序 员 很 容 易 学 习 和 使 用 Java 另 一 方 面,Java 丢 弃 了 C++ 中 很 少 使 用 的 很 难 理 解 的 令 人 迷 惑 的 那 些 特 性, 如 操 作 符 重 载 多 继 承 自 动 的 强 制 类 型 转 换 特 别 地,Java 语 言 不 使 用 指 针, 并 提 供 了 自 动 的 垃 圾 收 集, 使 得 程 序 员 不 必 为 内 存 管 理 而 担 忧 1.2.2 面 向 对 象 面 向 对 象 是 当 前 软 件 开 发 的 重 要 方 法 它 是 在 编 程 过 程 中 采 用 封 装 继 承 多 态 的 编 程 方 法 面 向 对 象 的 概 念 和 应 用 已 超 越 了 程 序 设 计 和 软 件 开 发, 扩 展 到 很 宽 的 范 围 如 数 据 库 系 统 交 互 式 界 面 应 用 结 构 应 用 平 台 分 布 式 系 统 网 络 管 理 结 构 CAD 技 术 人 工 智 能 等 领 域 Java 语 言 提 供 类 接 口 和 继 承 等 原 语, 为 了 简 单 起 见, 只 支 持 类 之 间 的 单 继 承, 但 支 持 接 口 之 间 的 多 继 承, 并 支 持 类 与 接 口 之 间 的 实 现 机 制 ( 关 键 字 为 implements) Java 语 言 全 面 支 持 动 态 绑 定, 而 C++ 语 言 只 对 虚 函 数 使 用 动 态 绑 定 总 之,Java 语 言 是 一 个 纯 的 面 向 对 象 程 序 设 计 语 言 本 书 将 在 后 续 章 节 详 细 准 确 地 讨 论 面 向 对 象 的 基 本 概 念 1.2.3 分 布 式 Java 语 言 是 分 布 式 的 Java 语 言 支 持 Internet 应 用 的 开 发, 在 基 本 的 Java 应 用 编 程 接 口 中 有 一 个 网 络 应 用 编 程 接 口 (java net), 它 提 供 了 用 于 网 络 应 用 编 程 的 类 库, 包 括 URL URLConnection Socket ServerSocket 等 Java 的 RMI( 远 程 方 法 调 用 ) 机 制 也 是 开 发 分 布 式 应 用 的 重 要 手 段 1.2.4 健 壮 性 Java 的 强 类 型 机 制 异 常 处 理 垃 圾 的 自 动 收 集 等 是 Java 程 序 健 壮 性 的 重 要 保 证 对 指 针 的 丢 弃 是 Java 的 明 智 选 择 Java 的 安 全 检 查 机 制 使 得 Java 更 具 健 壮 性 1.2.5 安 全 性 Java 通 常 被 用 在 网 络 环 境 中, 为 此,Java 提 供 了 一 个 安 全 机 制 以 防 恶 意 代 码 的 攻 击 除 了 Java 语 言 具 有 的 许 多 安 全 特 性 以 外,Java 对 通 过 网 络 下 载 的 类 具 有 一 个 安 全 防 范 机 制 ( 类 ClassLoader), 如 分 配 不 同 的 名 字 空 间 以 防 替 代 本 地 的 同 名 类 字 节 代 码 检 查, 并 提 供 安 全 管 理 机 制 ( 类 SecurityManager) 让 Java 应 用 设 置 安 全 哨 兵 1.2.6 平 台 无 关 无 论 哪 种 语 言 编 写 的 应 用 程 序 的 运 行 都 需 要 通 过 操 作 系 统 和 处 理 器 来 完 成 与 平 台 无 关 是 指 程 序 代 码 不 因 操 作 系 统 处 理 器 的 变 化 导 致 发 生 无 法 运 行 或 出 现 运 行 错 误 Java 能 运 行 于 不 同 的 平 台, 这 是 因 为 Java 引 进 虚 拟 机 原 理, 并 运 行 于 虚 拟 机, 在 不 同 平 台 的 Java 接 口 之 间 实 现 使 用 Java 编 写 的 程 序 能 在 世 界 范 围 内 共 享 Java 的 数 据 类 型 与 机 器
第 1 章 Java 概 述 3 无 关,Java 虚 拟 机 (Java Virtual Machine) 是 建 立 在 硬 件 和 操 作 系 统 之 上, 实 现 Java 二 进 制 代 码 的 解 释 执 行 功 能, 提 供 于 不 同 平 台 的 接 口 的 1.2.7 多 线 程 多 线 程 机 制 能 够 使 应 用 程 序 在 同 一 时 间 并 行 执 行 多 项 任 务, 而 且 相 应 的 同 步 机 制 可 以 保 证 不 同 线 程 能 够 正 确 地 共 享 数 据 使 用 多 线 程, 可 以 带 来 更 好 的 交 互 能 力 和 实 时 行 为 Java 语 言 支 持 多 个 线 程 的 同 时 执 行, 并 提 供 多 线 程 之 间 的 同 步 机 制 1.3 Java 开 发 环 境 安 装 与 配 置 对 于 初 学 者 要 进 行 Java 的 开 发, 必 须 首 先 搭 建 Java 开 发 环 境 ( 运 行 平 台 ) 目 前,Java 2 平 台 有 三 个 版 本 1.3.1 平 台 介 绍 (1)Java SE( 以 前 版 本 称 为 J2SE,Java 2 Platform Standard Edition) Java 标 准 版 或 Java 标 准 平 台 Java SE 提 供 了 标 准 的 Java Development Kit(JDK) 利 用 该 平 台 可 以 开 发 Java 桌 面 应 用 程 序 和 低 端 的 服 务 器 应 用 程 序, 也 可 以 开 发 Java Applet 程 序,Applet 是 嵌 入 在 HTML 文 件 中 的 Java 程 序 当 前 最 新 的 JDK 版 本 为 JDK 6.0 (2)Java EE( 以 前 版 本 称 为 J2EE,Java 2 Platform Enterprise Edition) Java 企 业 版 或 Java 企 业 平 台 使 用 Java EE 可 以 构 建 企 业 级 服 务 应 用,Java EE 建 立 于 Java SE 基 础 之 上, 增 加 了 附 加 类 库, 具 有 Web 服 务 组 建 模 型, 以 及 通 信 API 等 特 性, 这 些 为 面 向 服 务 的 架 构 (SOA) 以 及 Web 2.0 应 用 开 发 提 供 了 支 持 (3)Java ME( 以 前 版 本 称 为 J2ME,Java 2 Platform Micro Edition) Java 微 型 版 或 Java 小 型 平 台 是 一 个 技 术 和 规 范 的 集 合, 它 为 移 动 设 备 ( 消 费 类 产 品 嵌 入 式 设 备 高 级 移 动 设 备 等 ) 提 供 了 基 于 Java 环 境 的 开 发 与 应 用 平 台 Java ME 目 前 分 为 两 类 配 置, 一 类 是 面 向 小 型 移 动 设 备 的 CLDC(Connected Limited Device Profile), 一 类 是 面 向 功 能 更 强 大 的 移 动 设 备, 如 智 能 手 机 和 机 顶 盒, 称 为 CDC(Connected Device Profile) 有 关 Java SE Java EE 和 Java ME 的 详 细 内 容, 可 登 录 官 方 网 站 http://java.sun.com 或 http://www.oracle.com/technetwork/java/index.html 进 行 了 解 1.3.2 用 JDK 管 理 Java 1.JDK 简 介 JDK 是 Java Development Kit(Java 开 发 工 具 包 ) 的 缩 写, 是 Sun Microsystems 针 对 Java 开 发 的 产 品 它 为 Java 应 用 程 序 提 供 了 基 本 的 开 发 环 境 自 从 Java 推 出 以 来,JDK 已 经 成 为 使 用 最 广 泛 的 Java 软 件 开 发 工 具 包 JDK 也 是 Java SE 平 台 提 供 学 习 Java 语 言 的 最 佳 平 台, 只 有 掌 握 了 Java SE 的 JDK 才 能 进 一 步 学 习 Java EE 和 Java ME 一 般 初 学 Java 时 都 选 用 JDK 作 为 开 发 环 境, 而 目 前 很 多 优 秀 的 Java 集 成 开 发 环 境 (IDE), 如 Eclipse,NetBeans,JCreator 等, 都 是 在 JDK 基 础 上 建 立 的, 换 句 话 说, 如 果 没 有 JDK, 其 他 集 成 开 发 环 境 是 无 法 工 作 的
4 Java 语 言 程 序 设 计 教 程 Sun 公 司 的 JDK 是 免 费 的 工 具, 可 以 到 Sun 公 司 网 站 (http://java.sun.com) 或 提 供 相 关 下 载 的 网 站 下 载 不 同 的 版 本 适 合 不 同 的 操 作 系 统, 用 户 可 以 根 据 自 己 所 用 的 操 作 系 统 下 载 相 应 的 JDK 版 本 本 书 以 Windows 操 作 系 统 平 台 为 例 进 行 开 发 环 境 的 搭 建, 下 载 的 版 本 为 jdk 6u24 windows i586.exe(jdk6.0) 2. 安 装 JDK JDK6.0 的 下 载 地 址 : http://www.oracle.com/technetwork/java/javase/downloads/index.html 下 载 完 后 双 击 jdk 6u24 windows i586.exe 文 件 就 可 以 进 行 开 发 工 具 的 安 装, 安 装 过 程 非 常 简 单 当 出 现 选 择 安 装 路 径 界 面 时, 如 图 1 1 所 示, 建 议 读 者 将 默 认 的 安 装 路 径 C:\Program Files\Java\jdk1.6.0_24 改 为 D:\jdk1.6.0_24, 这 样 做 是 为 了 便 于 今 后 环 境 变 量 的 设 置 图 1 1 JDK 安 装 路 径 的 选 择 表 1 1 显 示 了 JDK 安 装 成 功 后, 在 D:\jdk1.6.0_24 目 录 下 形 成 的 目 录 结 构 表 1 1 JDK 主 要 目 录 内 容 目 录 bin 子 目 录 demo 子 目 录 include 子 目 录 jre 子 目 录 lib 子 目 录 sample 子 目 录 描 述 存 放 开 发 工 具 和 实 用 程 序, 如 编 译 器 javac.exe 和 解 释 器 java.exe 存 放 Java 平 台 的 编 程 示 例, 含 源 码 存 放 支 持 使 用 Java 本 机 界 面 JVM 工 具 界 面 以 及 Java 平 台 的 其 他 功 能 进 行 本 机 代 码 编 程 的 头 文 件 存 放 Java 运 行 环 境 包 括 Java 虚 拟 机 类 库 以 及 其 他 支 持 执 行 以 Java 语 言 编 写 的 程 序 的 文 件 存 放 开 发 工 具 所 需 的 其 他 类 库 和 支 持 文 件 存 放 Java API 编 程 样 例, 含 源 码 3. 配 置 Path 和 ClassPath 环 境 变 量 JDK 安 装 结 束 后, 为 了 方 便 Java 程 序 的 编 译 和 运 行, 还 需 要 对 其 运 行 环 境 进 行 配 置, 即 Path 和 ClassPath 的 设 置 Path 的 设 置 主 要 是 为 了 能 够 在 DOS 命 令 行 下 找 到 Java 编 译 与 运 行
第 1 章 Java 概 述 5 所 用 的 程 序, 如 javac.exe 和 java.exe 等 ; 而 ClassPath 的 设 置 主 要 是 为 了 让 Java 虚 拟 机 能 够 找 到 需 要 的 类 库 不 同 的 操 作 系 统 设 置 方 法 略 有 差 异, 下 面 以 Windows 7 为 例 分 别 讲 解 Path 和 ClassPath 的 设 置 步 骤 (1) 系 统 环 境 Path 的 设 置 在 Windows 7 操 作 系 统 中 选 择 控 制 面 板 系 统 高 级 系 统 设 置 高 级 环 境 变 量 命 令 就 可 以 设 置 环 境 变 量 Path, 如 图 1 2 所 示 的 环 境 变 量 对 话 框, 在 系 统 变 量 中 找 到 Path 变 量, 点 击 编 辑 按 钮, 在 图 1 3 所 示 的 对 话 框 中 对 Path 变 量 进 行 编 辑 或 修 改 图 1 2 环 境 变 量 对 话 框 图 1 3 设 置 系 统 环 境 变 量 Path (2) 系 统 环 境 ClassPath 的 设 置 在 Windows 7 操 作 系 统 中 选 择 控 制 面 板 系 统 高 级 系 统 设 置 高 级 环 境 变 量 新 建 系 统 变 量 命 令 就 可 以 设 置 环 境 变 量 ClassPath, 如 图 1 4 所 示 图 1 4 设 置 环 境 变 量 ClassPath
6 Java 语 言 程 序 设 计 教 程 1.4 创 建 并 运 行 一 个 简 单 的 Java 程 序 Java 程 序 分 为 三 类, 即 Application (Java 应 用 程 序 ) Java Applet (Java 小 程 序 ) 和 Servlet ( 服 务 器 端 应 用 程 序 ) Java 应 用 程 序 可 以 在 安 装 了 Java 标 准 平 台 的 任 何 计 算 机 上 运 行 Java Applet 不 需 要 安 装 Java 标 准 平 台, 只 能 嵌 在 HTML 网 页 中 由 支 持 Java 的 浏 览 器 直 接 运 行 Servlet 是 运 行 在 服 务 器 端 的 小 程 序, 它 可 以 处 理 客 户 传 来 的 请 求 (request), 然 后 对 客 户 的 请 求 给 予 响 应 (response) 本 节 以 Java 应 用 程 序 开 发 为 例 1.4.1 Java 程 序 开 发 步 骤 开 发 一 个 Java 应 用 程 序 分 为 三 个 步 骤 : (1) 创 建 一 个 带 有 文 件 扩 展 名 *.java 的 源 文 件 1) 使 用 编 辑 器 ( 如 记 事 本 ), 输 入 如 图 1 5 的 例 1.1 中 所 示 的 6 行 文 本 图 1 5 Hello.java 程 序 2) 把 该 文 件 命 名 为 Hello.java, 并 保 存 为 了 方 便 起 见, 本 章 实 例 文 件 保 存 的 目 录 为 E:\Java_pro (2) 使 用 Java 编 译 器 javac.exe 编 译 源 文 件 生 成 一 个 带 有 文 件 扩 展 名 *.class 的 字 节 码 文 件 1) 打 开 Windows 命 令 提 示 符 单 击 开 始 运 行 命 令, 在 文 本 框 输 入 cmd 命 令 后 单 击 确 定 按 钮 进 入 DOS 窗 口 2) 使 用 cd 命 令 将 路 径 转 入 源 文 件 Hello.java 所 在 的 路 径 (E:\Java_pro), 输 入 javac Hello.java 命 令, 并 按 回 车 键, 如 图 1 6 所 示 图 1 6 编 译 Hello.java 源 文 件 (3) 使 用 Java 解 释 器 java.exe 运 行 字 节 码
第 1 章 Java 概 述 7 上 一 步 中 执 行 javac Hello.java 命 令 后, 如 果 没 有 任 何 提 示 信 息, 则 表 示 编 译 成 功, 且 生 成 一 个 字 节 码 文 件 Hello.class 在 当 前 路 径 下, 输 入 java Hello 命 令, 回 车 运 行 结 果 如 图 1 7 所 示 图 1 7 运 行 结 果 1.4.2 一 个 简 单 Java 程 序 的 要 素 例 1.1 Hello.java 1 // 一 个 简 单 的 application 例 子 : 打 印 一 行 文 本 2 class Hello { 3 public static void main (String[] args) { 4 System.out.println("Hello Java,This is my first Java Application!"); 5 6 第 1 行 在 程 序 中 是 注 释 行, 编 译 器 会 忽 略 注 释 内 容, 注 释 可 以 加 在 程 序 中 任 何 位 置 注 释 的 目 的 是 为 程 序 增 加 必 要 的 解 释, 提 高 程 序 的 可 读 性, 适 当 给 代 码 增 加 注 释 是 一 个 良 好 的 编 程 习 惯 Java 支 持 三 种 注 释 方 式 : 单 行 注 释 多 行 注 释 和 Javadoc 文 档 注 释 例 1.1 中 的 第 1 行 使 用 符 号 // 表 示 单 行 注 释 开 始, 该 行 从 // 后 为 注 释 内 容 多 行 注 释 使 用 /* */ 进 行 注 释, 以 /* 表 示 注 释 开 始, */ 表 示 注 释 结 束 例 如 : /* 一 个 简 单 的 application 例 子 功 能 : 打 印 一 行 文 本 */ class Hello { // 声 明 类 public static void main (String args[]) { System.out.println("Hello Java,This is my first Java Application!"); // 调 用 println() 方 法, 显 示 字 符 串 Javadoc 文 档 注 释 以 符 号 /** 表 示 注 释 开 始, */ 表 示 注 释 结 束 Javadoc 注 释 可 以 被 JDK 内 置 的 javadoc.exe 工 具 制 作 程 序 的 开 发 文 档 将 例 1.1 代 码 进 行 如 下 修 改, 并 保 存 /** *Simple Java Application *@author smalltang
8 Java 语 言 程 序 设 计 教 程 *@version 1.0 2011.2.1 */ class Hello { public static void main (String args[]) { System.out.println("Hello Java,This is my first Java Application!"); 然 后 使 用 下 列 命 令 : javadoc d e:\html document hello.java 在 E:\html document 目 录 中 得 到 Hello 类 的 HTML 文 档, 用 浏 览 器 打 开 HTML 文 档, 效 果 如 图 1 8 所 示 图 1 8 Hello 类 的 Javadoc 网 页 第 2 行 声 明 类 的 名 称 Hello 当 源 文 件 被 编 译 时, 根 据 该 源 文 件 中 的 类 名 会 创 建 一 个 Hello.class 文 件 第 3 行 main() 方 法 是 程 序 的 执 行 的 开 始 第 4 行 程 序 调 用 println() 方 法 将 字 符 串 写 入 到 标 准 输 出 流 1.4.3 Java Applet 程 序 Java Applet 就 是 用 Java 语 言 编 写 的 一 些 小 应 用 程 序, 它 们 可 以 直 接 嵌 入 到 网 页 中, 并 能 够 产 生 特 殊 的 效 果 包 含 Applet 的 网 页 被 称 为 Java Powered 页, 可 以 称 其 为 Java 支 持 的 网 页 例 1.2 HelloApplet.java import java.applet.*; import java.awt.*; // 引 入 java.applet 包 中 的 系 统 类 // 引 入 java.awt 包 中 的 系 统 类
第 1 章 Java 概 述 9 public class HelloApplet extends Applet{ public void paint(graphics g){ g.setcolor(color.red); // 设 置 字 体 颜 色 g.drawstring("hello Java!",2,20); // 在 坐 标 (2, 20) 处 输 出 字 符 串 Hello, java! 由 于 Applet 没 有 main() 方 法 作 为 程 序 的 入 口, 它 是 由 浏 览 器 来 运 行, 因 此, 需 要 编 写 一 个 HTML 文 件 将 该 Applet 的 字 节 码 文 件 嵌 入 其 中, 然 后 用 支 持 Java 的 浏 览 器 或 appletview 来 运 行 在 文 本 编 辑 器 中, 编 写 如 下 HTML 代 码 : <html> <head>java Applet</head> <body> </body> <applet> </applet> Code = "HelloApplet.class" Width = "500" Height = "300" </html> 把 上 述 的 HTML 代 码 保 存 为 HelloApplet.html 文 件, 并 和 HelloApplet.class 文 件 保 存 在 同 一 目 录 下 否 则, 需 要 在 Applet 中 增 加 codebase 属 性, 来 指 定 Applet 的 字 节 码 文 件 所 在 的 目 录 操 作 命 令 如 图 1 9 所 示 运 行 结 果 如 图 1 10 所 示 图 1 9 运 行 Applet 图 1 10 运 行 结 果 1.5 Java 开 发 工 具 当 前, 基 于 Java 的 程 序 开 发 工 具 比 较 常 见 的 有 几 种 : JDK+ 文 本 编 辑 器 (Editplus) JCreator JBuilder 和 Eclipse 1.JDK+ 文 本 编 辑 器 JDK+Editplus 的 组 合 适 合 编 写 一 些 规 模 小 的, 独 立 的 Java 程 序, 通 常 不 适 合 于 中 大 型 项 目 的 开 发, 但 作 为 Java 的 初 学 者 应 该 了 解 这 种 模 式, 有 助 于 了 解 Java 程 序 运 行 的 过 程 及 其 相 关 命 令 的 使 用
10 Java 语 言 程 序 设 计 教 程 2.JCreator JCreator 是 Xinox 公 司 开 发 的 一 个 可 视 化 的 Java 集 成 开 发 环 境 (IDE) JCreator 为 用 户 提 供 了 相 当 强 大 的 功 能, 例 如 项 目 管 理 功 能, 项 目 模 块 功 能, 可 以 个 性 化 设 置 语 法 高 亮 属 性 行 数 类 浏 览 器 标 签 文 档 多 功 能 编 译 器, 向 导 功 能 以 及 完 全 可 自 定 义 的 用 户 界 面 通 过 JCreator 可 以 不 用 激 活 主 文 档 而 直 接 编 译 或 运 行 Java 程 序 JCreator 的 设 计 接 近 于 Windows 界 面 风 格, 用 户 对 它 的 界 面 比 较 熟 悉 其 最 大 特 点 是 与 所 装 的 JDK 完 美 结 合, 是 其 他 任 何 一 款 IDE 所 不 能 比 拟 的 它 是 一 种 初 学 者 很 容 易 掌 握 的 Java 开 发 工 具, 缺 点 是 只 能 进 行 简 单 的 程 序 开 发, 不 能 进 行 企 业 J2EE 的 开 发 应 用 3.JBuilder JBuilder 是 Borland 公 司 开 发 的 Java 集 成 开 发 环 境 (IDE) 它 在 Eclipse 和 NetBeans 出 现 之 前 是 非 常 流 行 的 一 方 面 它 的 功 能 强 大, 另 一 方 面 JBuilder 是 当 时 唯 一 能 够 真 正 称 得 上 IDE 的 产 品 4.Eclipse Eclipse 是 一 个 非 常 成 功 的 开 源 项 目 在 2001 年, IBM 为 了 对 抗 微 软 日 益 强 大 的 垄 断 地 位, 将 价 值 4000 万 美 元 的 源 代 码 Eclipse 捐 给 开 源 组 织, 组 建 了 Eclipse 联 盟, 负 责 该 工 具 的 后 续 开 发 在 软 件 功 能 上,Eclipse 接 近 于 JBuilder, 但 其 具 有 非 常 杰 出 的 可 扩 展 性 经 过 几 年 的 发 展,Eclipse 已 经 成 为 当 前 最 流 行 的 Java IDE 和 开 发 Java 项 目 的 首 选 IDE 1.6 小 结 Java 语 言 是 当 今 流 行 的 网 络 编 程 语 言, 特 别 适 合 于 开 发 网 络 上 的 应 用 程 序, 具 有 面 向 对 象 简 单 平 台 无 关 多 线 程 等 优 秀 特 性 面 向 对 象 编 程 的 三 大 特 性 是 封 装 继 承 和 多 态 Java 程 序 主 要 包 括 Application(Java 应 用 程 序 ) Java Applet(Java 小 程 序 ) 和 Servlet ( 服 务 器 端 应 用 程 序 ) 三 种 Java 应 用 程 序 的 开 发 必 须 经 过 编 写 编 译 运 行 三 个 步 骤 使 用 记 事 本 等 文 本 编 辑 工 具 进 行 程 序 代 码 的 编 写, 使 用 Java 开 发 工 具 集 JDK 提 供 的 编 译 器 进 行 编 译, 最 后 使 用 Java 解 释 器 解 释 运 行 Java 虚 拟 机 使 Java 应 用 程 序 实 现 了 跨 平 台 运 行 习 题 1 1. 简 述 Java 语 言 的 特 点 2.J2SE J2ME 与 J2EE 如 何 区 别? 3. 在 计 算 机 程 序 设 计 中, 可 移 植 性 意 味 着 什 么? 4. 编 写 运 行 Java 程 序 需 要 经 过 哪 些 主 要 步 骤? 5. 编 写 并 运 行 一 个 Java 应 用 程 序, 在 屏 幕 上 输 出 欢 迎 学 习 Java! 6. 编 写 并 运 行 一 个 Java Applet 程 序, 在 浏 览 器 中 能 显 示 欢 迎 学 习 Java!