SCJP(Oracle Certified Professional, Java SE5.0 Programmer) 國 際 能 力 認 證 學 制 / 班 級 : 日 間 部 四 年 制 / 網 通 四 乙 指 導 老 師 : 方 信 普 老 師 學 生 學 號 / 姓 名 :49636108/ 王 順 聖 繳 交 年 月 份 : 民 國 100 年 6 月 一 Java 認 證 和 SCJP5.0 介 紹 Java 認 證, 包 含 程 式 設 計 的 SCJP(Sun Certified Java Programmer) 開 發 Web 元 件 的 SCWCD(Sun Certified Component Developer) 手 機 相 關 的 SCMAD(Sun Certified Mobile Application Developer) 等 認 證 取 得 該 認 證 者 代 表 在 該 領 域 中 有 能 力 使 用 Java 程 式 語 言 作 開 發 SUN 為 了 替 業 界 設 立 一 套 認 證 的 標 準, 會 針 對 最 先 進 的 科 技, 發 行 Java 及 Solaris 技 術 認 證 方 案 業 界 可 以 根 據 這 些 認 證 作 為 招 攬 人 才 的 篩 選 標 準, 也 可 以 做 為 測 試 程 式 人 員 技 術 水 準 的 依 靠, 所 有 通 過 JAVA 認 證 的 人 員 均 可 擁 有 SUN 原 廠 的 保 證, 來 認 可 程 式 人 員 的 專 業 能 力 由 於 JAVA 是 一 種 可 以 撰 寫 跨 平 台 應 用 軟 體 的 物 件 導 向 程 式 語 言, 可 以 運 用 的 領 域 相 當 廣 泛, 從 手 機 到 商 業 用 應 用 系 統 皆 可 採 用 JAVA 最 為 研 發 工 具 因 此, 巨 匠 電 腦 針 對 不 同 的 使 用 需 求, 規 劃 與 JAVA 相 應 的 專 業 認 證 課 程 來 達 到 企 業 需 求 二 考 試 範 疇 三 考 試 方 式 考 試 目 前 提 供 兩 個 版 本 : CX-310-065: (Standard Edition 6) CX-310-055: (Standard Edition 5.0) 考 試 相 關 費 用 : $300 ( 美 金 ) 題 目 : 60 題 通 過 : 58.33% (60 題 答 對 35 題 )
時 間 : 180 分 鐘 四 考 試 特 點 (a) 程 式 易 懂 撰 寫 簡 單, 不 必 經 過 長 時 間 的 課 程 訓 練 (b) 物 件 導 向 的 程 式 設 計, 將 重 點 擺 在 資 料 介 面 的 技 巧 (c)java 有 一 個 很 完 善 且 分 散 式 的 程 式 庫, 方 便 與 HTT 和 FTP 等 TCP/IP 通 訊 協 定 互 相 搭 配 (d) 由 Java 所 撰 寫 出 的 程 式 可 以 在 眾 多 情 況 下 執 行 且 穩 定 性 高 (e)java 擁 有 數 個 階 層 的 戶 鎖 (Interlocking) 安 全 保 護 措 施, 能 有 效 地 防 止 病 毒 入 侵 和 發 生 破 壞 行 為 (f)java 編 譯 器 會 產 生 一 種 結 構 中 立 物 件 的 檔 案 格 式 (Object File Format), 使 得 編 譯 碼 得 以 在 很 多 種 處 理 器 中 執 行 (g)java 本 身 具 備 有 很 好 的 可 攜 帶 性 (h)java 解 譯 器 能 直 接 地 在 任 何 機 器 上 執 行 Java 位 元 碼 (Bytecodes), 因 此 在 進 行 程 式 連 結 時 能 節 省 時 間 (i)java 位 元 碼 能 迅 速 地 能 被 轉 換 成 機 械 碼, 從 位 元 碼 轉 換 成 機 械 碼 的 效 能 幾 乎 與 C 語 言 與 C++ 沒 有 分 別 (j) 具 有 多 重 線 串 的 功 能, 有 利 於 互 動 回 應 能 力 及 即 時 執 行 (k) 比 C 語 言 或 C++ 語 言 更 有 動 態 性, 不 會 因 為 程 式 庫 更 新 而 需 要 整 個 重 新 編 譯 五 考 試 心 得 這 分 SCJP5.0 的 考 試 心 得, 我 打 算 分 享 一 下 當 初 應 考 時, 一 些 讓 我 印 象 深 刻 的 題 型, 以 及 當 初 我 是 如 何 作 答, 如 何 判 斷, 並 且 做 出 詳 細 的 解 題 分 析 試 題 1: Which thtee statement are true?(choose three) A. A final method in class X can be abstract if and only if X is abstract. B. A protected method in class X can be overridden by any subclass of X. C. A private static method can be called only within other static mothods in the class X. D. A non-static public final method in class X can be overridden in any subclass of X. E. A public static static method can be called by a subclass of X whthout explicitly referencing the class X. F. A method with the same signature as a private final method in class X can be implemented in a subclass of X.
選 項 A 是 錯 的, 因 為 abstract 原 本 就 是 要 被 繼 承 改 變 的,final 則 是 讓 對 方 不 能 再 改 變, 所 以 加 上 final 是 無 意 義 的 選 項 B 正 確, 子 類 別 是 可 以 合 法 付 寫 在 父 類 別 中 的 選 項 C 是 錯 的, 不 只 有 static 方 法 可 以 呼 叫,non-static 的 方 法 也 可 以 呼 叫 選 項 D 正 確 選 項 F 正 確 試 題 2: public class ItemTest{ private final int id; public ItemTest(int newid){this.id=id public static void main(string[]args){ ItemTest fa = news ItemTest(42) Fa.updateId(69); System.out.println(fa.id); 首 先 要 說 明 的 就 是 final 這 個 修 飾 字 在 基 本 數 值 上 是 一 但 經 過 指 定 後, 就 不 能 修 改 其 指 定 的 數 值, 但 是 本 題 卻 因 為 newid 而 嘗 試 修 改 final id 的 數 值, 導 致 編 輯 無 法 通 過, 所 以 本 題 答 案 是 Compilation fails 試 題 3: public abstract class Shape{ private int x; private int y; public abstract void draw(); public void setanchor(int x,int y){ this.x = x; this.y = y; Which two classes use the Shape class correctly?(choose two) A. public class Circle implements Shape{
B. public abstract class Circle extends Shape{ C. public class Circle extends Shape{ public void draw(); D. public abstract class Circle implements Shape{ public void draw(); E. public class Circle extends Shape{ public void draw();{ /*CODE HERE*/ F. public abstract class Circle implements Shape{ public void draw();{ /*CODE HERE*/ 選 項 A 是 錯 的, 要 把 implements 改 成 extends 因 為 繼 承 抽 象 類 別 必 須 透 過 extends 選 項 B 正 確, 抽 象 函 式 可 以 不 必 實 作 所 有 函 式 選 項 C 是 錯 的, 當 實 作 draw() 的 時 候, 如 果 是 用 extends 繼 承 抽 象 類 別, 後 面 必 須 再 接 一 段 { /*CODE HERE*/ 才 正 確 選 項 D 錯 誤, 理 由 同 A 選 項 E 正 確 選 項 F 錯 誤, 理 由 同 A 試 題 4: Int []x = {1,2,3,4,5; int y[]= x; System.out.println(y[2]); 本 題 答 案 印 出 來 的 是 3, 這 題 是 在 考 我 們 陣 列 的 觀 念, 因 為 陣 列 的 索 引 值 開 頭 都 是 從 0 開 始, 所 以 y[0]=1 y[1]=2 同 理 y[2] 是 第 三 個 陣 列 元 素 是 3 試 題 5: Public class SuperCalc{ Protected static int multiply(int a,int b){return a * b;
and: Public class SubCalc SuperCalc{ Public static int multiply(int a,int b){ Int c= super.multiply(a,b); Return c; and: SubCalc sc = new SubCalc(); System.out.println(sc.multiply(3,4)); System.out.println(SubCalc. multiply(2,2)); 執 行 結 果, 編 譯 到 第 Int c= super. multiply(a,b); 那 行 的 時 候 會 發 生 錯 誤, 因 為 super 為 動 態 (non-static) 的 方 法, 所 以 non-static 方 法 是 不 能 存 取 static 方 法 的 但 如 果 把 本 題 的 super.multiply() 改 成 SuperCalc.multiply() 就 可 以 通 過 編 譯 了 試 題 6: Which two classes collectly implement both the java.lang.runnable and the java.lang.cloneable interface?(choose two.) A. public class Session implements Runnable,Cloneable{ public void run(); B. public class Session extends Runnable,Cloneable{ public void run(){/*do something*/ public Object clone(){/*do something*/ C. public class Session implements Runnable,Cloneable{ public void run();{/*do something*/ public Object clone(){/*do something*/ D. public abtract class Session implements Runnable,Cloneable{ public void run();{/*do something*/ public Object clone(){/*do something*/ E. public class Session implements Runnable, implements Cloneable{ public void run();{/*do something*/ public Object clone(){/*do something*/
本 題 是 測 驗 我 們 實 作 介 面 的 觀 念 選 項 A 錯 誤, 因 為 沒 有 實 作 {/*do something*/ 之 類 的 抽 象 方 法 選 項 B 錯 誤, 欲 想 實 作 介 面 就 必 須 透 過 implements 宣 告 選 項 C 正 確 選 項 D 正 確 選 項 E 是 錯 的,implements 或 extends 在 相 同 方 法 中 只 能 出 現 一 次 六 證 明
(1) 國 際 : Linux JAVA 為 國 際 性 技 能, 跟 隨 產 業 發 展 找 工 作 不 愁 (2) 優 先 : 資 訊 相 關 工 作 有 42% 以 相 關 認 證 作 為 優 先 錄 取 條 件 (3) 高 薪 : 年 薪 比 一 般 工 程 師 多 10%~30% (4) 除 了 徵 才 加 薪 參 考 之 外, 也 是 升 學 推 甄 留 學 移 民 的 重 要 佐 證 七 參 考 文 獻 [1]http://www.104learn.com.tw/certify/it/sun.htm [2]http://www.pcschool.com.tw/activity/99/9902java/index.asp?fromto=1073D07 [3]http://www.geego.com.tw/training_courses/scjp-cert-intro