C++與Java兩個(gè)軟件有誰能談?wù)勊鼈兊挠锰幣c優(yōu)點(diǎn)嗎?

熱心網(wǎng)友

JAVA是基于C++的 也就是說有C++的基礎(chǔ)后學(xué)JAVA很容易的1。Java 是 簡 單 的 Java 與 C++ 極 為 相 似, 但 卻 簡 單 得 多。 高 級 編 程 語 言 的 所 有 特 性 中,不 是 絕 對 需 要 的 都 已 刪 去 了。 例 如, Java 沒 有 算 符 過 載、 標(biāo) 題 文 件、 預(yù) 處 理、 指 針 運(yùn) 算、 結(jié) 構(gòu)、 聯(lián) 合、 多 維 數(shù) 組、 模 板 及 隱 式 類 型 變 換。 如 果 你 知 道 一 點(diǎn) C、 C++ 或 Pascal, 你 很 快 就 會(huì) 駕 馭 Java。 這 里 是 一 個(gè) 簡 單 的 Java Hello World 程 序: public class HelloInternet {public static void main(String argv[]) { intln(“Hello In-ternet!”)}}2。Java 是 面 向 對 象 的 Java 是 一 種 面 向 對 象 的 編 程 語 言。 除 了 簡 單 的 類 型, 如 數(shù) 字 和 布 爾 算 子 之 外, Java 中 的 大 部 分 都 是 對 象。 正 如 任 何 面 向 對 象 的 語 言 一 樣, Java 代 碼 也 按 類 組 織。 每 個(gè) 類 定 義 一 組 規(guī) 定 對 象 行 為 的 方 法。 一 個(gè) 類 可 以 繼 承 另 一 個(gè) 類 的 行 為。 在 類 的 根 層 次 上, 通 常 是 類 對 象。 Java 支 持 單 繼 承 類 層 次 結(jié) 構(gòu)。 這 就 是 說, 每 個(gè) 類 一 次 只 能 繼 承 一 個(gè) 別 的 類。 有 些 語 言 允 許 多 繼 承 性, 但 這 可 能 造 成 混 亂, 使 語 言 不 必 要 地 復(fù) 雜 化。 例 如, 難 以 想 像, 一 個(gè) 對 象 會(huì) 繼 承 兩 個(gè) 完 全 不 同 的 類 的 行 為。 Java 還 支 持 摘 要 類 的 接 口。 這 允 許 編 程 人 員 先 定 義 接 口 的 方 法, 而 不 必 急 于 馬 上 確 定 方 法 的 實(shí) 現(xiàn)。 一 個(gè) 類 可 以 施 行 多 個(gè) 接 口, 從 而 具 有 真 正 多 繼 承 性 的 許 多 優(yōu) 點(diǎn)。 一 個(gè) 對 象 也 可 實(shí) 施 任 意 數(shù) 量 的 接 口。 Java 接 口 與 IDL 接 口 極 其 相 似。 很 容 易 建 立 IDLJ 編 譯 器。 這 就 是 說, Java 可 用 于 CORBA 對 象 系 統(tǒng) 來 建 立 分 布 式 對 象 系 統(tǒng)。 鑒 于 在 許 多 計(jì) 算 機(jī) 系 統(tǒng) 中 都 采 用 IDL 接 口 和 CORBA 對 象 系 統(tǒng), 這 種 兼 容 性 是 重 要 的。 3。Java 是 靜 態(tài) 類 型 的 在 一 個(gè) Java 程 序 中, 必 須 定 義 所 用 對 象 (數(shù) 字、 字 符、 數(shù) 組 等) 的 類 型。 這 有 助 于 編 程 人 員 很 快 發(fā) 現(xiàn) 問 題, 因 為 當(dāng) 程 序 編 譯 時(shí) 可 以 檢 測 類 型 錯(cuò) 誤。 不 過, Java 系 統(tǒng) 中 的 對 象 也 有 動(dòng) 態(tài) 類 型。 要 求 一 個(gè) 對 象 為 動(dòng) 態(tài) 類 型 往 往 是 可 能 的, 所 以 編 程 人 員 寫 的 程 序 可 以 對 不 同 類 型 的 對 象 做 不 同 的 事。 4。Java 是 編 譯 型 的 當(dāng) 運(yùn) 行 Java 程 序 時(shí), 它 首 先 被 編 譯 成 字 節(jié) 代 碼。 字 節(jié) 代 碼 非 常 類 似 于 機(jī) 器 指 令, 所 以 Java 程 序 非 常 高 效。 然 而, 字 節(jié) 代 碼 并 不 專 對 一 種 特 定 的 機(jī) 器, 所 以 Java 程 序 無 需 重 新 編 譯 便 可 在 眾 多 不 同 的 計(jì) 算 機(jī) 上 執(zhí) 行。 Java 源 程 序 被 編 譯 成 類 文 件, 它 相 當(dāng) 于 程 序 的 字 節(jié) 代 碼 表 現(xiàn)。 在 一 個(gè) Java 類 文 件 中, 所 有 對 方 法 及 實(shí) 例 變 量 的 參 照 均 按 名 進(jìn) 行, 并 在 第 一 次 執(zhí) 行 代 碼 時(shí) 加 以 分 辨。 這 使 得 代 碼 更 通 用, 更 不 易 受 修 改 的 影 響, 而 仍 具 高 效。 5。Java 是 體 系 結(jié) 構(gòu) 中 立 的 Java 語 言 對 每 種 計(jì) 算 機(jī) 都 一 樣。 比 如, 簡 單 的 類 型 都 是 不 變 的: 整 數(shù) 總 是 32 位, 長 整 數(shù) 總 是 64 位。 令 人 奇 怪 的 是, 諸 如 C 及 C++ 等 時(shí) 髦 的 編 程 語 言 卻 不 是 這 樣。 由 于 這 些 語 言 定 義 如 此 自 由, 每 種 編 譯 器 及 開 發(fā) 環(huán) 境 便 各 有 不 同 了, 這 使 程 序 的 移 植 成 為 討 厭 的 問 題。 Java 程 序 的 移 植 卻 很 容 易, 而 且 不 需 要 進(jìn) 行 重 新 編 譯。 6。Java 是 健 全 的 Java 程 序 不 可 能 造 成 計(jì) 算 機(jī) 崩 潰。 Java 系 統(tǒng) 仔 細(xì) 檢 測 對 內(nèi) 存 的 每 次 訪 問, 確 認(rèn) 它 是 合 法 的, 而 且 不 致 引 起 任 何 問 題。 不 過, 即 使 Java 程 序 也 可 能 有 錯(cuò) 誤。 如 果 出 現(xiàn) 某 種 出 乎 意 料 之 事, 程 序 不 會(huì) 崩 潰, 而 把 該 例 外 拋 棄。 程 序 會(huì) 發(fā) 現(xiàn) 這 類 例 外, 并 加 以 處 理。 傳 統(tǒng) 的 程 序 可 以 訪 問 計(jì) 算 機(jī) 的 全 部 內(nèi) 存。 程 序 可 能 (無 意 識(shí) 地) 修 改 內(nèi) 存 中 的 任 何 值, 這 就 會(huì) 造 成 問 題。 Java 程 序 只 能 訪 問 內(nèi) 存 中 允 許 它 們 訪 問 的 那 些 部 分, 所 以 Java 程 序 不 可 能 修 改 不 擬 修 改 的 值。 7。Java 是 小 巧 的 由 于 Java 的 設(shè) 計(jì) 是 要 在 小 的 計(jì) 算 機(jī) 上 運(yùn) 行, 作 為 一 種 編 程 語 言 來 說 其 系 統(tǒng) 是 相 對 較 小 的。 它 能 有 效 地 在 4MB 以 上 RAM 的 PC 機(jī) 上 運(yùn) 行。 Java 翻 譯 器 只 占 用 幾 百 KB。 這 種 翻 譯 器 對 Java 的 平 臺(tái) 無 關(guān) 性 和 可 移 植 性 是 可 * 的。 由 于 Java 很 小, 它 對 內(nèi) 存 很 小 的 計(jì) 算 機(jī), 如 基 于 Java 的 PC 機(jī), 以 及 電 視 機(jī)、 烤 箱、 電 話 機(jī) 及 家 用 計(jì) 算 機(jī) 等, 是 很 理 想 的。 8。Java 是 多 線 程 的 Java 程 序 可 以 執(zhí) 行 一 個(gè) 以 上 的 線 程。 比 如, 它 可 以 在 一 個(gè) 線 程 中 完 成 某 一 耗 時(shí) 的 計(jì) 算, 而 其 它 線 程 與 用 戶 進(jìn) 行 交 互 對 話。 所 以 用 戶 不 必 停 止 工 作, 等 待 Java 程 序 完 成 耗 時(shí) 的 計(jì) 算。 在 多 線 程 環(huán) 境 中 的 編 程 通 常 是 困 難 的, 因 為 許 多 東 西 可 能 同 時(shí) 出 現(xiàn)。 但 是, Java 提 供 了 易 于 使 用 的 同 步 特 性, 使 編 程 更 為 方 便。 Java 線 程 通 常 被 映 射 為 實(shí) 際 的 操 作 系 統(tǒng) 線 程, 只 要 底 層 操 作 系 統(tǒng) 支 持 這 種 映 射。 因 此, 用 Java 寫 的 應(yīng) 用 程 序 可 說 是 “MP 熱”。 這 就 是 說, 如 果 它 們 在 多 處 理 器 機(jī) 器 上 運(yùn) 行, 它 們 更 將 表 現(xiàn) 不 凡。 9。Java 是 可 收 集 無 用 的 存 儲(chǔ) 單 元 的 用 C 及 C++ 寫 軟 件 的 編 程 人 員 必 須 仔 細(xì) 跟 蹤 所 用 的 內(nèi) 存 塊。 當(dāng) 一 個(gè) 塊 不 再 使 用 時(shí), 他 們 務(wù) 必 讓 程 序 釋 放 它, 從 而 方 可 再 用。 在 大 的 項(xiàng) 目 中, 這 可 能 很 困 難, 并 往 往 成 為 出 錯(cuò) 和 內(nèi) 存 不 足 的 根 源。 在 Java 的 情 況 下, 編 程 人 員 不 必 為 內(nèi) 存 管 理 操 心。 Java 系 統(tǒng) 有 一 個(gè) 叫 做 “無 用 單 元 收 集 器” 的 內(nèi) 置 程 序, 它 掃 描 內(nèi) 存, 并 自 動(dòng) 釋 放 那 些 不 再 使 用 的 內(nèi) 存 塊。 10。Java 是 快 速 的 Java 比 典 型 的 腳 本 語 言 大 為 有 效, 但 它 比 C 慢 20 倍。 這 對 大 多 數(shù) 應(yīng) 用 是 可 接 受 的。 不 久 的 將 來, 代 碼 生 成 器 就 可 供 利 用 了, 這 將 使 Java 程 序 幾 近 于 用 C 或 C++ 編 寫 的 程 序 那 么 快。 11。Java 是 安 全 的 Java 程 序 沒 有 指 針, 而 且 象 這 樣 的 字 節(jié) 代 碼 程 序 強(qiáng) 在 類 型 上, 所 以 在 執(zhí) 行 之 前 它 可 能 驗(yàn) 證 Java 程 序。 被 驗(yàn) 證 的 Java 程 序 得 以 保 證 不 突 破 Java 語 言 的 任 何 限 制, 而 且 可 以 安 全 地 執(zhí) 行。 Java 字 節(jié) 代 碼 驗(yàn) 證 被 Web 瀏 覽 器 用 來 確 保 小 程 序 不 含 病 毒。 12。Java 是 可 擴(kuò) 展 的 Java 程 序 可 與 用 其 它 語 言 編 寫 的 現(xiàn) 存 程 序 庫 連 接。 由 于 Java 數(shù) 據(jù) 結(jié) 構(gòu) 與 C 的 數(shù) 據(jù) 結(jié) 構(gòu) 的 類 型 極 為 相 似, 這 是 相 當(dāng) 方 便 的。 最 大 的 問 題 在 于, 現(xiàn) 有 多 線 程 程 序 庫 為 數(shù) 不 多。 Java 程 序 可 以 聲 明 某 些 方 法 是 內(nèi) 部 的, 然 后, 把 這 些 內(nèi) 部 方 法 映 射 成 軟 件 庫 所 定 義 的 功 能, 從 而 動(dòng) 態(tài) 地 鏈 接 到 虛 擬 機(jī) 計(jì)算機(jī)同盟。