收藏 分享(赏)

已读java_入门.doc

上传人:yjrm16270 文档编号:9472431 上传时间:2019-08-09 格式:DOC 页数:28 大小:105KB
下载 相关 举报
已读java_入门.doc_第1页
第1页 / 共28页
已读java_入门.doc_第2页
第2页 / 共28页
已读java_入门.doc_第3页
第3页 / 共28页
已读java_入门.doc_第4页
第4页 / 共28页
已读java_入门.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、Java 语言人门 第 一 章 Java 概 述 1.1 Java 语 言 出 现 的 背 景 、 影 响 及应 用 前 景 1.2 Java 的 特 点 1.3 简 单 的 Java 程 序 第 二 章 数 据 类 型 2.1 数 据 类 型 2.2 常 量 与 变 量 2.3 整 型 数 据 2.4 浮 点 型 (实 型) 数 据 2.5 字 符 型 数 据 2.6 布 尔 型 数 据 2.7 举 例第 三 章 运 算 符 和 表 达式 3.1 算 术 运 算 符 3.2 关 系 运 算 符 3.3 布 尔 逻 辑 运 算 符 3.4 位 运 算 符第 一 章 Java 概 述 1.1 J

2、ava 语 言 出 现 的 背景 、 影 响 及 应 用 前 景一 、 背 景 最 近 一 年 多 来 ,在 Internet 上 出 现 的 特 别 吸 引 人 的 事 件 就是 Ja va 语 言 和 用 Java 编 写 的 浏 览 器 HotJava。 1991 年 ,SUN MicroSystem 公 司 的 Jame Gosling、 Bill Joe 等 人 , 为 在电视 、 控 制 烤 面 包箱 等 家 用 消 费 类 电 子 产 品 上 进 行 交 互 式操 作 而 开 发 了 一 个 名为 Oak 的 软 件 (即一 种 橡 树 的 名 字 ), 但当 时 并 没 有 引

3、 起 人 们 的 注 意 ,直 到 1994 年下 半 年 ,Internet 的 迅猛发 展 ,环 球 信 息 网 WWW 的 快 速 增 长 ,促 进 了 Java 语 言 研 制 的 进展 ,使 得 它 逐 渐 成为 Int ernet 上 受 欢 迎 的 开 发 与 编 程 语 言 ,一 些著 名 的 计 算 机 公司 纷 纷 购 买 了 Java 语言 的 使 用 权 , 如 Mi-croSoft、 IBM、 Netscape、 Novell、 Apple、 DEC、 SGI 等,因 此 ,Java 语言 被 美 国 的 著 名 杂 志 PC Magazine 评 为 1995 年

4、十 大 优 秀科 技 产 品,(计 算 机 类 就 此 一项 入 选 ),随 之 大 量 出 现 了 用 Java 编写 的 软 件 产 品 ,受 到 工 业 界的 重 视 与 好 评 ,认 为 “Java 是八 十 年 代 以 来 计 算 机 界 的 一 件 大 事 “, 微 软 总 裁 比 尔 盖 茨 在 悄 悄 地 观 察了 一 段 时 间 后 ,不 无感 慨 地 说 :“Java 是 长 时 间 以 来 最 卓 越 的 程序 设 计 语 言 “,并确 定 微软 整 个 软 件 开 发 的 战 略 从 PC 单 机 时 代 向 着 以 网 络为中 心 的 计 算 时 代 转 移 ,而 购

5、 买 Java 则 是 他 的 重 大 战 略 决 策的实施 部 署 。因 此 ,Java 的 诞 生 必 将 对 整 个 计 算 机 产 业 发 生 深远的 影 响,对 传 统 的 计 算 模型 提 出 了 新 的 挑 战 。 SUN MicroSystem 公 司 的 总 裁 Scott McNealy 认 为 Java 为 Internet 和WWW 开辟 了 一 个崭 新 的 时 代 . 环 球 信 息 网 WWW 的 创 始 人 Berners-Lee 说 : “计 算 机 事 业 发展 的下 一 个 浪 潮 就是 Java,并 且 将 很 快 会 发 生 的 “。看 来 ,使 用

6、Java 已 成 大 势 所 趋 ! MicroSoft 和 IBM 两 大 公 司 都 计 划 在 Internet 上 销 售 用 Java 编写的 软 件 。 Apple、 HP、 IBM、 MicroSoft、 Novell、 SGI、 SCO、 Tandem 等 公 司均计 划 将 Java 并入 各 自 开 发 的 操 作系 统 ,而 负 责 开 发 并 推 广 Java 技 术 的 SunSoft 公司 (这 是 SUN 下 属的 一 个 子 公 司 ), 将 通 过 颁发 许 可 证 的 办 法 来 允 许 各 家 公 司 把 Java 虚 拟 机 和 Java 的 Apple

7、ts 类库 嵌 入 他 们 开 发 的 操 作 系 统 ,这 样 各 类 开 发 人 员 就 能更 容易 地 选 择 多种 平 台 来 使 用 Java 语 言 编 程 ,不 同 的 用 户 也 就 可以 脱 离 Web 浏 览器 来 运 行 Java 应 用程 序 ,这 无 疑 是 很 受 广 大 用户 欢 迎 的 ,也 为 Java 语 言 的 应 用 开 拓了极为 广 阔 的 前景 。 (当然 ,各 类 JavaOS 之 间 的 兼 容 性 必 须 得 到 重 视 ,好 在 JavaSoft 已 保证 将 监 督 这种 兼 容 性 )。 另 外 ,由 JavaSoft 推 出 的 完 全

8、 用 Java 编 写 的 Internet 上 新 型 浏览器 HotJava,比 去 年 alpha 版 更 为 实 用 ,不 仅 能 编 制 动 态 的 应 用 软件 ,而 且 能 编 制 完整 的 成 套 桌 面 应 用软 件 ,将 来 还 会 提 供 更多 的 能 帮 助 编 制 动 态 应 用 软 件 的 模 块,显 然 ,这 也 是 为 J ava 的应 用 提 供 了 有 力 的 例 证 。 今 年 6 月 7 日 ,由 SUN 公 司 和 台 湾 经 济 事 务 部 信 息 发 展 局, 台湾信 息 技 术 研究 所 等 单 位 牵 头 ,成 立 了 一 个 “Java 联

9、盟 “, 参 加 的 有 22 个 在 台 湾相 当 著 名 的 计 算 机公 司 ,并 在 台 北 建 立一 个 “Java 开 发 中 心 “,在 新 竹 建 立 一 个 “Java 语 言实 验 室 “, 以 掀起 台 湾 开 发 与 应 用 Java 语 言 的 热 潮 。 香 港 则 在 今 年 4 月 就 举 行 了 全 岛 的 Java 杯 比 赛 ,在 计 算 机界掀 起 了 学 习 Java 的热 潮 (尤 其 是 在 大 学 生 们 中 ,出 现 了 一 批 Java 迷 )。 有 人 预 言 :Java 将 是 网 络 上 的 “世 界 语 “,今 后 所 有的 用 其

10、他语 言 编 写 的 软 件统 统 都 要 用 Java 语 言 来 改 写 。 二 、 Java 语 言 对 软 件 开 发 技 术 的 影 响 工 业 界 不 少 人 预 言 :“Java 语 言 的 出 现 ,将 会 引 起 一 场软 件革 命 “,这 是 因 为 传统 的 软 件 往 往 都 是 与 具 体 的 实现 环 境 有 关 ,换 了 一 个 环 境 就需 要 作 一 番 改 动 ,耗时 费 力 ,而 Java 语 言 能 在 执 行 码 (二 进 制 码 )上 兼 容 ,这 样 以 前 所开 发 的软 件 就 能 运行 在 不 同 的 机 器 上 ,只 要 所 用 的 机 器

11、 能 提供 Java 语 言 解 释 器 即可 。 Java 语 言 将 对 未 来 软 件 的 开 发 产 生 影 响 , 可 从 如 下 几 个方面 考 虑 : 1 软 件 的 需 求 分 析 :可 将 用 户 的 需 求 进 行 动 态 的 、 可 视化描 述 ,以 提供设 计者 更 加 直 观 的 要 求 。 而 用 户 的 需 求 是 各色 各 样 的 ,不 受 地 区、 行 业 、 部 门 、 爱好 的 影 响 ,都 可 以 用 Java 语 言 描 述 清 楚 。 2 软 件 的 开 发 方 法 :由 于 Java 语 言 的 面 向 目 标 的 特 性 , 所以完 全 可 以

12、用 O-O 的技 术 与 方 法 来 开 发 ,这 是 符 合 最 新 的 软件 开 发 规 范 要 求 的 。 3 Java 语 言 的 动 画 效 果 远 比 GUI 技 术 更 加 逼 真 ,尤 其 是 利用 WW W 提 供 的 巨 大动 画 资 源 空 间 ,可 以 共 享 全 世 界 的 动 态 画面 的 资 源 。 4 软 件 最 终 产 品 :用 Java 语 言 开 发 的 软 件 可 以 具 有 可视化 、 可 听 化 、 可 操作 化 的 效 果 ,这 要 比 电 视 、 电 影 的 效果 更 为 理 想 ,因 为 它 可 以做 到 “即 时 、 交 互、 动 画 与 动

13、作 “,要它 停 就 停 ,要 它 继 续 就 继 续 ,而 这 是 在 电 影与 电视 播 放 过 程 中难 以 做 到 的 。 5 其 它 :使 用 Java 语 言 对 开 发 效 益 、 开 发 价 值 都 有 比 较明显 的 影 响 。 三 、 工 业 界 对 Java 语 言 的 评 价 1996 年 5 月 29 31 日 ,在 美 国 旧 金 山 召 开 了 一 个 全 世 界 Java 语言 开 发 者 大 会,(JavaOne Developer Confer-ence),出 席 会 议 的 多 达 6500 多 人 ,来 自 工 业界 的 超 过 一 半 ,有人 评 价

14、说 :“这 是 近年 来 计 算 机 界 最 光 辉 的 一 次 盛 会 “,一 些 工 业 界 的 老 总们 相 当看 好 Java 语 言 ,认 为 它 的 使 用 将 会 引 起 一 场 软 件 革命 。 从 软 件的 设 计 风 格 、 设计 方 法 、 设 计 目 标 到 设 计 过 程 ,都 会 产 生 彻 底 的 变 革 ,“甚 至 会改 变 此 星 球 的 生活 方 式 “。 在 这 次 会 上 ,Java 的 创 始 人 之 一 James Gosling 说 :“Java 不仅 仅只 是 applets, 它 能 做任 何 事 情 “,Dta 咨 询 公 司 的 高 级软

15、件 工 程 师 Rich Kadel 说 :“Java 不仅 仅 是 一 种 程 序 设计 语言 ,更 是 现 代 化 软 件 再 实 现 的 基 础 ;Java 还 是 未 来 新 型 OS 的核 心 ;将 会 出 现 Java 芯 片 ;将 构 成 各 种 应 用 软 件 的 开 发 平 台与 实 现 环 境 ,是 人们 必 不 可 少 的 开 发工 具 “。 由 于 各 界 都 看 好 它 ,因 此 ,各 大 公 司 都 纷 纷 表 示 支 持 Java,Inte l、 Xerox 公 司 声 言将 把 Java 嵌 入 到 他 们 的 产 品 中 去 。 就 连 华尔 街 金 融 界

16、也 在 投入 资 金 人 力 用 Java 开 发 电 子 贸 易 、 金 融软 件 。 所 以 有 人 说 :“现 在 第 三 方 的 开 发 商 都 团 结 在 Java 大旗 周 围了 !“,纷 纷 推 出 用 Java 开 发 的 各 种 软 件 产 品 ,以 期尽 快 地 占 领 市 场 。 四 、 Java 语 言 的 应 用 前 景 Java 语 言 有 着 广 泛 的 应 用 前 景 ,大 体 上 可 以 从 以 下 几 个方面 来 考 虑 其 应 用 : 1 所 有 面 向 对 象 的 应 用 开 发 ,包 括 面 向 对 象 的 事 件 描 述、处 理 、 综 合 等 ;2

17、 计 算 过 程 的 可 视 化 、 可 操 作 化 的 软 件 的 开 发 ;3 动 态 画 面 的 设 计 ,包 括 图 形 图 像 的 调 用 ;4 交 互 操 作 的 设 计 (选 择 交 互 、 定 向 交 互 、 控 制 流 程 等 );5 Internet 的 系 统 管 理 功 能 模 块 的 设 计 ,包 括 Web 页 面 的 动 态设计 、 管 理 和 交互 操 作 设 计 等 ;6 Intranet(企 业 内 部 网 )上 的 软 件 开 发 (直 接 面 向 企 业 内 部用户 的 软 件 );7 与 各 类 数 据 库 连 接 查 询 的 SQL 语 句 实 现

18、;8 其 它 应 用 类 型 的 程 序 。 1.2 Java 的 特 点 Java 是 一 个 广 泛 使 用 的 网 络 编 程 语 言 ,它 是 一 种 新 的 计算概 念 。 首 先 ,作 为 一 种 程 序 设 计 语 言 ,它 简 单 、 面向对象 、 不依 赖于 机 器 的 结 构 、具 有 可 移 植 性 、 鲁 棒 性 、 安 全 性 、 并 且提 供 了 并 发 的 机 制 、具 有 很 高 的 性 能。 其 次 ,它 最 大 限 度 地 利 用 了 网 络 ,Java 的小应用程序(applet) 可在网 络 上 传 输 而 不受 CPU 和 环 境 的 限 制 。 另

19、外 ,Java 还 提 供 了 丰富 的 类 库 ,使 程 序 设计 者 可 以 很 方 便地 建 立 自 己 的 系 统 。 下 面 我 们 分 别 从 这 三 个 方 面 来 讨 论 Java 的 特 点 ,然 后通 过把 Java 与 C,C+相 比进 一 步 指 出 它 所 具 有 的 优 点 。 一 、 Java 语 言 Java 语 言 有 下 面 一 些 特 点 :简 单 、 面 向 对 象 、 分 布 式 、解释 执 行 、 鲁 棒 、安 全 、 体 系 结 构 中 立 、 可 移 植 、 高 性 能、 多 线 程 以 及 动 态 性。 1.简 单 性 Java 语 言 是 一

20、 种 面 向 对 象 的 语 言 ,它 通 过 提 供 最 基 本 的方法 来 完 成 指 定 的任 务 ,只 需 理 解 一 些 基 本 的 概 念 ,就 可 以用 它 编 写 出 适 合 于 各种 情 况 的 应 用 程 序。 Java 略 去了 运 算 符重 载 、 多 重 继 承 等 模 糊 的 概 念 ,并 且 通 过实 现 自 动 垃 圾 收集大 大 简 化 了 程 序 设 计 者 的 内 存 管 理 工 作 。 另 外 ,Java 也 适合于 在 小 型 机 上 运行 ,它 的 基 本 解 释 器 及 类 的 支 持 只 有 40KB 左右 ,加 上 标 准 类 库 和线 程 的

21、 支 持 也 只 有 215KB左 右 。 库 和 线程 的 支 持 也 只 有 2 15KB 左 右 。 2.面 向 对 象 Java 语 言 的 设 计 集 中 于 对 象 及 其 接 口 ,它 提 供 了 简 单 的类机 制 以 及 动 态 的接 口 模 型 。 对 象 中 封 装 了 它 的 状 态 变 量以 及 相 应 的 方 法 ,实现 了 模 块 化 和 信 息隐 藏 ;而 类 则 提 供 了一 类 对 象 的 原 型 ,并 且 通 过 继 承 机 制 ,子 类可 以 使 用 父 类 所提供 的 方 法 , 实 现 了 代 码 的 复 用 。 3.分 布 性 Java 是 面 向

22、 网 络 的 语 言 。 通 过 它 提 供 的 类 库 可 以 处 理TCP/IP 协议 ,用 户 可 以通 过 URL 地 址 在 网 络 上 很 方 便 地 访 问 其 它 对 象。 4.鲁 棒 性 Java 在 编 译 和 运 行 程 序 时 ,都 要 对 可 能 出 现 的 问 题 进 行检查 ,以 消 除 错 误 的产 生 。 它 提 供 自 动 垃 圾 收 集 来 进 行 内存 管 理 ,防 止 程 序 员 在管 理 内 存 时 容 易 产生 的 错 误 。 通 过集 成 的 面 向 对 象 的 例 外 处 理 机 制 ,在 编 译 时,Java 提 示 出 可能 出现 但 未

23、被 处 理 的 例 外 ,帮 助 程 序 员 正 确 地 进 行 选 择 以防 止 系统 的 崩 溃 。 另 外,Java 在 编 译 时 还 可 捕 获 类 型 声 明 中的 许 多 常 见 错 误 ,防 止 动 态运 行 时 不 匹 配 问题 的 出 现 。 5.安 全 性 用 于 网 络 、 分 布 环 境 下 的 Java 必 须 要 防 止 病 毒 的 入 侵 。Java 不 支 持 指 针 ,一切 对 内 存 的 访 问 都 必 须 通 过 对 象 的 实 例 变量 来 实 现 ,这 样 就防 止 程 序 员 使 用 “特洛 伊 “ 木 马 等欺 骗 手 段 访 问 对 象 的 私

24、 有 成 员 ,同 时 也 避 免 了指 针 操 作 中容 易 产 生的 错 误 。 6.体 系 结 构 中 立 Java 解 释 器 生 成 与 体 系 结 构 无 关 的 字 节 码 指 令 ,只 要 安装了 Java 运 行 时 系 统,Java 程 序 就 可 在 任 意 的 处 理 器 上 运 行 。这 些 字 节 码 指 令 对 应于 Java 虚 拟 机 中 的表 示 ,Java 解 释 器 得到 字 节 码 后 ,对 它 进 行 转 换 ,使 之 能 够 在 不同 的 平 台 运 行 。 7.可 移 植 性 与 平 台 无 关 的 特 性 使 Java 程 序 可 以 方 便

25、地 被 移 植 到 网 络上的 不 同 机 器 。同 时 ,Java 的 类 库 中 也 实 现 了 与 不 同 平 台 的 接口 ,使 这 些 类 库 可以 移 植 。 另 外 ,Java 编 译 器 是 由 Java 语 言 实现 的 ,Java 运 行 时 系 统 由 标 准 C 实 现 ,这使 得 Java系 统 本 身 也具有 可 移 植 性 。 8.解 释 执 行 Java 解 释 器 直 接 对 Java 字 节 码 进 行 解 释 执 行 。 字 节 码 本身携 带 了 许 多 编 译时 信 息 ,使 得 连 接 过 程 更 加 简 单 。 9.高 性 能 和 其 它 解 释

26、执 行 的 语 言 如 BASIC、 TCL 不 同 ,Java 字 节 码 的 设计使 之 能 很 容 易地 直 接 转 换 成 对 应 于 特 定 CPU 的 机 器 码 ,从而得 到 较 高 的 性 能。 10.多 线 程 多 线 程 机 制 使 应 用 程 序 能 够 并 行 执 行 ,而 且 同 步 机 制 保证了 对 共 享 数 据 的正 确 操 作 。 通 过 使 用 多 线 程 ,程 序 设 计 者可 以 分 别 用 不 同 的线 程 完 成 特 定 的 行为 ,而不 需 要 采 用 全 局的 事 件 循 环 机 制 ,这 样 就 很 容 易 地 实 现 网 络 上 的 实 时

27、 交 互行为 。 11.动 态 性 Java 的 设 计 使 它 适 合 于 一 个 不 断 发 展 的 环 境 。 在 类 库 中可以 自 由 地 加 入新 的 方 法 和 实 例 变 量 而 不 会 影 响 用 户 程 序的 执 行 。 并 且 Java 通 过 接 口 来 支 持 多重 继 承 ,使 之 比 严 格 的类 继 承 具 有 更 灵 活 的 方 式 和 扩 展 性 。 二 、 Java Applet Java 语 言 的 特 性 使 它 可 以 最 大 限 度 地 利 用 网 络 。 Applet是 Jav a 的 小 应 用 程序 ,它 是 动 态 、 安 全 、 跨 平

28、台 的 网 络 应 用 程 序。 Java Applet 嵌 入 HTML 语 言 ,通 过 主页 发 布 到 Internet。 网 络 用 户访 问 服 务 器 的 Applet 时 ,这些 Applet 从网 络 上 进 行 传 输 ,然 后 在支 持 Java 的 浏 览 器 中 运 行 。 由 于 Java语 言 的 安 全 机 制,用 户一 旦 载 入 Applet,就 可 以 放 心 地 来 生 成 多 媒 体 的 用 户 界 面 或完 成 复 杂 的计 算 而 不 必 担 心 病毒 的 入 侵 。 虽 然 Applet 可 以 和图 像 、 声 音 、 动 画 等 一 样 从

29、网 络上 下 载 ,但 它 并 不同 于 这些 多 媒 体 的 文 件 格 式 ,它 可 以 接 收 用 户 的 输 入 ,动 态 地进 行改 变 ,而 不 仅 仅是 动 画 的 显 示 和 声 音 的 播 放 。 三 、 丰 富 的 类 库 Java 提 供 了 大 量 的 类 以 满 足 网 络 化 、 多 线 程 、 面 向 对 象系统 的 需 要 。 1.语 言 包 提 供 的 支 持 包 括 字 符 串 处 理 、 多 线 程 处 理 、例外 处 理 、 数 学 函数 处 理 等 ,可 以 用 它 简 单 地 实 现 Java 程 序的 运 行 平 台 。 2.实 用 程 序 包 提

30、 供 的 支 持 包 括 哈 希 表 、 堆 栈 、 可 变 数组、时 间 和 日 期 等。 3.输 入 输 出 包 用 统 一 的 “流 “模 型 来 实 现 所 有 格式 的 I/O,包括 文 件 系 统 、 网 络、 输 入 /出 设 备 等 。 4.低 级 网 络 包 用 于 实 现 Socket 编 程 。 5.抽 象 图 形 用 户 接 口 包 实 现 了 不 同 平 台 的 计 算 机 的 图形用 户 接 口 部 件 ,包括 窗 口 、 菜 单 、 滚 动 条 、 对 话 框 等 ,使得 Java 可 以 移 植 到 不 同平 台 的 机 器 。 6.网 络 包 支 持 Inte

31、rnet 的 TCP/IP 协 议 ,提 供 了 与 Internet 的 接 口。它 支 持 URL 连 接,WWW 的 即 时 访 问 ,并 且 简 化 了 用 户 /服 务 器 模型 的 程 序 设 计 。 四 、 Java 和 C、 C+ 对 于 变 量 声 明 、 参 数 传 递 、 操 作 符 、 流 控 制 等 ,Java 使用了 和 C、 C+相 同的 传 统 ,使 得 熟 悉 C、 C+的 程 序 员 能 很 方 便地 进 行 编 程 。 同 时,Java 为 了 实 现 其简 单 、 鲁 棒 、 安 全 等 特性 ,也 摒 弃 了 C 和 C+中 许 多 不 合 理 的 内

32、容 。 1.全 局 变 量 Java 程 序 中 ,不 能 在 所 有 类 之 外 定 义 全 局 变 量 ,只 能 通 过在一 个 类 中 定 义 公用 、 静 态 的 变 量 来 实 现 一 个 全 局 变 量 。例 如 : Class GlobalVar public static global_var; 在 类 GlobalVar 中 定 义 变 量 global_var 为 public stat-ic,使 得 其 它类可 以 访 问 和 修 改该 变 量 。 Java 对 全 局 变 量 进 行 了 更 好 的 封 装 。 而 在 C 和 C+中 , 依 赖于不 加 封 装 的 全

33、局 变 量 常 常 造 成 系 统 的 崩 溃 。 2.Goto Java 不 支 持 C、 C+中 的 goto 语 句 ,而 是 通 过 例 外 处 理 语 句 try,Ca tch, final 等 来 代替 C、 C+中 用 goto 来 处 理 遇 到 错 误 时 跳 转 的情 况 ,使 程 序 更 可 读且 更 结 构 化 。 3.指 针 指 针 是 C、 C+中 最 灵 活 ,也 是 最 容 易 产 生 错 误 的 数 据 类型。由 指 针 所 进 行的 内 存 地 址 操 作 常 会 造 成 不 可 预 知 的 错误 ,同 时 通 过 指 针 对某 个 内 存 地 址 进 行显

34、 式 类 型 转 换 后 ,可以 访 问 一 个 C+中 的 私 有 成 员 ,从 而 破 坏 安全 性 ,造 成 系 统 的崩 溃 。 而 Java 对 指 针 进 行 完 全 的 控 制 ,程 序 员 不 能 直 接进行 任 何 指 针 操 作 ,例 如把 整 数 转 化 为 指 针 ,或 者 通 过 指 针释放 某 一 内 存 地 址 等 。 同时 ,数 组 作 为 类 在 Java 中 实 现 ,良 好 地解 决 了 数 组 访 问 越 界 这 一 C、 C+中 不 作 检 查的 错 误 。 4.内 存 管 理 在 C 中 ,程 序 员 通 过 库 函 数 malloc()和 free

35、()来 分 配 和 释 放 内存 , C+中 则 通 过 运算 符 new 和 delete 来 分 配 和 释 放 内 存 。 再 次 释放 已 释 放 的 内 存 块或 未 被 分 配 的 内存 块 ,会 造 成 系 统 的 崩溃 ;同 样 ,忘 记 释 放 不 再 使 用 的 内 存 块 也会 逐 渐 耗 尽 系 统资源 。 而 在 Java 中 ,所 有 的 数 据 结 构 都 是 对 象 , 通 过 运 算 符 new 为它们 分 配 内 存 堆。 通 过 new 得 到 对 象 的 处 理 权 ,而 实 际 分 配 给对 象 的 内 存 可 能随 程 序 运 行 而 改变, Jav

36、a对 此 自 动 地 进 行 管理 并 且 进 行 垃 圾 收 集 ,有 效 防 止 了 由 于程 序 员 的 误 操 作而导 致 的 错 误 ,并 且 更 好 地 利 用 了 系 统 资 源 。 5.数 据 类 型 的 支 持 在 C、 C+中 ,对 于 不 同 的 平 台 ,编 译 器 对 于 简 单 数 据 类 型如 in t,float 等 分 别 分配 不 同 长 度 的 字 节 数 ,例 如 :int 在 IBM PC 中为 16 位 ,在 VAX-11 中 为 32 位 ,这 导 致 了 代 码的 不 可 移 植 性 ,但 在 Java 中 ,对 于 这 些 数 据 类 型 总

37、是 分 配 固 定 长 度 的 位 数 ,如 对 int 型 ,它 总 占 32 位 ,这 就 保 证 了 Java 的 平 台 无 关 性 。 6.类 型 转 换 在 C、 C+中 ,可 以 通 过 指 针 进 行 任 意 的 类 型 转 换 ,常 常 带来不 安 全 性 ,而 Java 中 ,运 行 时 系 统 对 对 象 的 处 理 要 进 行 类型 相 容 性 检 查 ,以 防 止不 安 全 的 转 换 。 7.头 文 件 C、 C+中 用 头 文 件 来 声 明 类 的 原 型 以 及 全 局 变 量 、 库 函数等 ,在 大 的 系 统中 ,维 护 这 些 头 文 件 是 很 困

38、难 的 。 而 Java 不支 持 头 文 件 ,类 成 员的 类 型 和 访 问 权限 都 封 装 在 一 个 类 中 ,运 行 时 系 统 对 访 问 进 行 控 制 ,防 止 对 私有 成 员 的 操 作 。 同时 ,Java 中 用 import 语 句 来 与 其 它 类 进 行 通 讯 ,以 便 使 用它 们 的方法 。 8.结 构 和 联 合 C、 C+中 的 结 构 和 联 合 中 所 有 成 员 均 为 公 有 ,这 就 带 来了安 全 性 问 题 。Java 中 不 包 含 结 构 和 联 合 ,所 有 的 内 容 都 封装 在 类 中 。 9.预 处 理 C、 C+中 用

39、 宏 定 义 来 实 现 的 代 码 给 程 序 的 可 读 性 带 来 了困难 。 在 Java 中 ,不 支 持 宏 ,它 通 过 关 键 字 final 来 声 明 一 个 常量 ,以 实 现 宏 定 义中 广 泛 使 用 的 常 量定 义 。 1.3 简 单 的 Java 程 序 下 面 我 们 先 介 绍 两 个 简 单 的 Java 程 序 ,并 对 其 进 行 分 析。例 1.1. public class HelloWorldApp /an application public static void main (String args ) System.out.println

40、(“Hello World!“); 本 程 序 的 作 用 是 输 出 下 面 一 行 信 息 : Hello World! 程 序 中 ,首 先 用 保 留 字 class 来 声 明 一 个 新 的 类 ,其 类 名 为 Hell oWorldApp,它 是 一 个公 共 类 (public)。 整 个 类 定 义 由 大 括 号 括起 来 。 在 该 类 中 定义 了 一 个 main ()方 法 ,其中 public 表 示 访 问权 限 ,指 明 所 有 的 类 都 可 以 使 用 这 一 方 法 ;static 指 明 该 方法 是 一 个 类方 法 ,它 可 以 通 过 类 名

41、直 接 调 用 ;void 则 指 明 main()方法 不 返 回 任何 值 。 对 于 一 个 应 用程 序 来 说 ,main()方 法 是 必需 的 ,而 且 必 须 按 照 如 上 的 格 式 来 定义 。 Jave 解 释 器 在 没 有生成 任 何 实 例 的 情 况 下 ,以 main()作 为 入 口 来 执 行 程 序 。 Jave 程序中 可 以 定 义 多 个 类 , 每 个 类 中 可 以 定 义 多 个 方 法 ,但 是 最多 只 能 有 一 个 公 共 类,main()方 法 也 只 能 有 一 个 ,作 为 程 序 的入 口 。 main()方 法 定 义 中

42、,括 号 ()中 的 String args 是传 递 给 main()方法 的 参 数 ,参 数 名 为 args,它 是 类 String 的 一 个 实 例 ,参 数 可 以为 0 个 或 多 个,每 个 参 数 用 “类 名 参数 名 “来 指 定 , 多个 参 数 间 用 逗 号 分 隔 。 在 main()方 法 的 实 现(大 括 号 中 ),只有 一 条 语句 : System.out.println (“Hello World!“); 它 用 来 实 现 字 符串 的 输 出 ,这条 语 句 实 现 与 C 语 言 中 的 printf 语 句 和 C+中 cout语句 相

43、同 的 功 能 。 另 外 ,/后 的 内 容 为 注 释 。 现 在 我 们 可 以 运 行 该 程 序 。 首 先 把 它 放 到 一 个 名 为HelloWor ldApp.java 的 文 件 中 ,这 里 ,文 件 名 应 和 类 名 相 同 ,因 为 Java 解释 器 要 求 公 共 类 必 须 放在 与 其 同 名 的 文 件 中。然 后 对 它 进行 编 译 : C:javac HelloWorldApp.java 编 译 的 结 果 是 生 成 字 节 码 文 件 HelloWorldApp.class。最 后 用java 解 释 器 来 运 行 该字 节 码 文 件 :

44、C:java HelloWorldApp 结 果 在 屏 幕 上 显 示 Hello World! 我 们 再 来 看 下 面 的 一 个 例 子 : 例 1.2 import java.awr.*; import java.applet.*; public class HelloWorldApplet extends Applet /an applet public void paint(Graphics g) g.drawString (“Hello World!“,20,20); 这 是 一 个 简 单 的 Applet(小 应 用 程 序 )。 程 序 中 ,首 先 用 import

45、语句 输 入 java.awr 和 java.applet 下 所 有 的 包 ,使 得 该 程 序 可 能 使 用这 些 包 中 所 定 义 的类 , 它 类 似 于 C 中 的#include 语 句 。 然 后 声明 一 个 公 共 类 HelloWorldApplet,用 extends 指明 它 是 Applet 的 子 类。 在类 中 ,我 们 重 写 父 类 Ap-plet 的 paint()方 法 ,其 中 参 数 g 为 Graphics 类,它表 明 当 前 作 画 的 上下 文 。 在 paint()方 法 中 ,调 用 g 的 方 法 drawString(),在坐 标

46、 (20,20)处输 出 字 符 串 “Hello World!“,其 中 坐 标是 用 象 素 点 来 表 示 的 。 这 个 程 序 中 没 有 实 现 main()方 法 ,这 是 Applet 与 应 用 程序 Applica tion(如 例 1)的 区 别 之一 。 为 了 运 行 该 程 序 ,首 先 我们 也 要 把它 放 在 文 件 HelloWorldAppl et.java 中 ,然 后 对 它 进行 编 译 : C:javac HelloWorldApplet.java 得 到 字 节 码 文 件 HelloWorldApplet.class。 由 于 Applet 中

47、 没 有main()方法 作 为 Java 解 释 器的 入 口 ,我 们 必 须 编 写 HTML 文 件 ,把 该 Applet 嵌入 其 中 ,然 后 用 appletviewer 来 运 行 ,或 在支 持 Java 的 浏 览 器 上运 行 。 它 的 HTML文 件 如 下 : HTML HEAD TITLE An Applet /TITLE /HEAD BODY applet code=“HelloWorldApplet.class“ width=200 height=40 /applet /BODY /HTML 其 中 用 applet标 记 来 启 动 HelloWorldA

48、pplet,code 指 明字 节 码所在 的 文 件 ,width 和 height 指 明 applet 所 占 的 大 小 ,我 们 把 这 个 HTML 文件 存 入 Example.html,然 后 运 行 : C:appleviewer Example.html 这 时 屏 幕 上 弹 出 一 个 窗 口 ,其 中 显 示 Hello World!,显 示 结果如 图 : 从 上 述 例 子 中 可 以 看 出 ,Java 程 序 是 由 类 构 成 的 ,对 于 一个应 用 程 序 来 说 ,必 须有 一 个 类 中 定 义 main()方 法 ,而 对 applet 来说 ,它

49、 必 须 作 为 Applet 的一 个 子 类 。 在 类 的 定 义 中 ,应包 含 类变 量 的 声 明 和 类 中 方 法 的 实 现 。 Java 在 基 本 数据 类 型 、 运算 符 、 表达 式 、 控 制 语 句 等 方 面 与 C、 C+基 本 上 是 相 同 的 ,但 它 同 时 也增 加 了 一 些 新 的 内 容 ,在 以 后 的 各 章 中 ,我 们会 详 细 介 绍 。 本 节 中 ,只 是 使 大 家 对 Java 程 序 有 一 个 初 步 的了解 。 第 二 章 数 据 类 型 2.1 数 据 类 型 数 据 类 型 指 明 了 变 量 或 表 达 式 的 状 态 和 行 为 。 Java 的数据 类 型 如 下 所 示 : Java 不 支 持 C、 C+中 的 指 针 类 型 、 结 构 体 类 型 和 共 用 体类型 。 本 章 我 们 主 要 介 绍 简 单 类 型 。 2.2 常 量 与 变 量 一 、 常 量 Java 中 的 常 量 值 是 用 文 字 串 表 示 的 ,它 区 分 为 不 同的 类 型,如整 型

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报