SlideShare ist ein Scribd-Unternehmen logo
1 von 63
第 1 章

Java 與 SCJP 簡介
本投影片(下稱教用資源)僅授權給採用教用資源相關之旗標書籍為教科書之授課老師(下稱老師)專用,老
師為教學使用之目的,得摘錄、編輯、重製教用資源(但使用量不得超過各該教用資源內容之 80% )以製作為
輔助教學之教學投影片,並於授課時搭配旗標書籍公開播放,但不得為網際網路公開傳輸之遠距教學、網路教
學等之使用;除此之外,老師不得再授權予任何第三人使用,並不得將依此授權所製作之教學投影片之相關著
作物移作他用。
著作權所有 © 旗標出版股份有限公司
學習目標
 認識程式語言
 Java 簡介
 SCJP 認證簡介
前言
 在這一章中 , 將為大家介紹甚麼是程式語言?
 瞭解程式語言所扮演的角色 , 並且簡單說明程式語言
的演進 , 接著再由 Java 程式語言的歷史 , 一步步的
進入 Java 程式設計的領域。
1-1 甚麼是程式語言?
 電腦就像是一位協助我們完成工作的朋友 , 當我們與
朋友一起工作時 , 會使用大家都可以聽懂的語言相互
溝通 , 以便讓對方瞭解我們希望他做甚麼?
 舉例來說 , 大家都會說國語 , 因此在一般的情況下 ,
只要以國語溝通 , 通常都可以正確的完成工作。
 不過想像一下 , 如果今天到了一個客家村落 , 遇到了
一位老婆婆 , 她可能只聽得懂客家語 , 想要向她問路
, 國語可能就行不通了。
甚麼是程式語言?
 這個情況在面對電腦的時候也是一樣 , 雖然科幻片中
聽得懂人說話的電腦不計其數 , 但到目前為止 , 這都
還是人類的夢想而已。
 要想讓電腦幫我們工作 , 還是得說電腦懂得的語言 ,
這種可以讓我們與電腦溝通的語言 , 就稱之為電腦語
言 (Computer Language ), 或者是程式語言
(Programming Language) 。
甚麼是程式語言?
 簡單地來說 , 當我們要求電腦為我們工作時 , 可以
分為幾個步驟:
1. 先分析所要解決的問題。
2. 找出解決問題的步驟 , 這些步驟稱為解決此問題的演
算法 (Algorithm) 。
3. 使用程式語言表達出前述解決問題的步驟 , 這個動作
就稱為撰寫程式 (Writing Program), 或者是設計程
式 (Designing Program) 。
甚麼是程式語言?
4. 要求電腦依據上一步驟所寫好的程式執行 , 看看是否
能夠正確解決問題。這個動作就稱為測試 (Testing)
程式。
5. 如果執行的結果有問題 , 就再回到第 3 步 , 檢查所
撰寫的程式是否有錯誤 , 並加以修正 , 一直到程式的
執行結果完全符合預期為止。這個動作稱為除錯
(Debug) 。
甚麼是程式語言?
甚麼是程式語言?
 透過以上的步驟 , 就可以利用電腦解決許多問題了。
 不過就如同人類語言的多樣性 , 程式語言也有許多不
同的種類 , 以下就程式語言本身的特質以及執行的方
式 , 再做進一步的解說。
演算法的定義
 嚴格來說 , 一個演算法是要符合以下幾項規定:
1. 要明確的說 明輸入的資料:亦即依照這個演算法解決
問題時 , 要先具備的條件是甚麼。
2. 要明確的說 明產 生的結果:在特定的輸入資料下 ,
這個演算法執行之後 , 會得到甚麼結果。只要輸入的
資料相同 , 這個演算法就應該要得到一樣的結果。
演算法的定義
3. 要能夠 在有限的步 驟內 完成:這一點是很重要的 , 否
則無法預估完成的時間。舉例來說 , 如果你立志要到
美國旅行 , 那麼達成這個目的的方法就不能是『假如
心情好 , 就存 10 元』 , 這不能稱為演算法 , 因為你
無法預估甚麼時候會完成;反之 , 如果改成『每天存
10 元』 , 那麼只要知道所需的總旅費 , 就可以知道
這個方法甚麼時候可以達成 , 這才能稱為演算法。
4. 要明確的說明每一個執行步驟的動作 , 而不能讓人不
知道該如何進行。
5. 要能證明可以解決問題。
演算法的定義
 一個演算法基本上要能夠用紙筆就可以模擬出執行的
結果 , 而不一定要使用電腦或是其他工具 , 只是對於
比較複雜的演算法 , 我們不容易演練其執行過程而已
。
1-1-1 程式語言的演進與分類
 電腦的程式語言也和人類的語言一樣 , 有許多種不同
的類型 , 在這一小節中 , 會以程式語言的本質 , 以及
語言本身的差異 , 來區分各種不同的程式語言。
機器語言 (Machine Language)
 對於電腦來說 , 它真正所懂得的語言只有一種 , 就是
機器語言。
 所謂的機器語言 , 其實就是以特定的數字來表示電腦
所能進行的各個動作 , 這些數字就稱為機器碼
(Machine Code) 。
 舉例來說 , 如果把電腦比喻為機器人 , 而 0 代表要
機器人往前走一步、 1 代表往後退一步、 2 代表往
左轉 90 度 , 而 3 代表往右轉 90 度 , 那麼當你希
望機器人往前走三步、再往右走三步時 , 就必須下達
『 0003000 』的指令 , 當電腦看到這一串數字後 ,
就會依據每個數字所代表的意義動作。
機器語言 (Machine Language)
機器語言 (Machine Language)
 任何一個人都可以看得出來 , 這種以數字表達的語言
並不適合人閱讀 , 除非我們是在玩團康遊戲 , 否則大
可不必考驗自己的記憶力。
 除此之外 , 使用不同微處理器的電腦 , 其機器語言亦
不相同 , 換了另外一種電腦 , 0 可能代表的是往後走
一步 , 一樣下達 0003000, 到達的地方就天差地遠了
。
 因此 , 除了早期電腦的時代 , 大家很快就發現要用這
種方式撰寫程式 , 實在太難了。
組合語言 (Assembly)
 為了解決機器語言的難題 , 大家就想到了用一些符號
來替代數字 , 以方便人們辨識各個指令。
 舉例來說 , 如果以 forward 代替原本的 0 、
backward 代替 1 、 left 代替 2, 而用 right 代替
3, 那麼同樣要往前走三步、再往右走三步的程式 ,
寫起來就變成這樣:
組合語言 (Assembly)
 像是這樣使用文字符號替代機器碼撰寫程式的語言 ,
就稱為組合語言。
 這種寫法絕對要比原本的 0003000 要容易懂得多 ,
不過這樣一來 , 雖然人們看得懂 , 但是電腦卻看不懂
, 而必須透過一個翻譯的動作 , 將這個用組合語言寫
成的程式轉換成電腦看得懂的機器語言 , 負責這個翻
譯動作的就是組譯器 (Assembler) 。
高階語言
 不論是機器語言還是組合語言 , 對於程式的描述都是
以電腦所能進行的最基本動作為步驟 , 因此這兩種語
言被稱為低階語言 ( Low-Level Language) 。
 換言之 , 本來是希望機器人向前走三步 , 然後向右走
三步 , 但是因為電腦所能進行的基本動作的限制 , 使
得我們所寫出來的程式必須以 『向前走一步、向前
走一步、向前走一步、向右轉 9 0 度、向前走一步
、向前走一步、向前走一步』 這樣繁瑣的方式一步
步描述實際進行的動作 , 寫起程式來其實並不便利。
高階語言
 為了解決這樣的問題 , 因此就有人設計新的語言 , 用
比較接近人類思考的方式來撰寫程式。
 這種新的程式語言就稱為高階語言 (High-Level
Language), 其中比較流行的有
C 、 Pascal 、 Basic 等等 , 使用這種語言 , 寫出來
的程式就會像是:

 不但比較容易理解 , 也不會像是低階語言所寫出來的
程式那樣繁瑣。
高階語言
 不過電腦並無法看懂這樣的程式 , 和組合語言一樣需
要一個轉譯的動作 , 將使用高階語言所撰寫的程式轉
換成電腦所能看懂的機器語言 , 然後才能依此執行。
這個轉換的動作就是由各種程式語言的編譯器
(Compiler ) 所進行。
物件導向程式語言
 隨著軟體技術的不斷演進 , 程式語言又從高階語言改
良 , 而發展出物件導向程式語言 (Object-Oriented
Language), 比較著名的有 Smalltalk 、 C+
+ 、 C# 、以及本書的主題 Java 。
 在後續的章節中 , 大家將可以看到物件導向程式語言
的特性 , 因此在這一節中 , 就不浪費篇幅撰述。
1-1-2 編譯式與直譯式的程式語言
 除了以程式語言本身的特質來分類以外 , 也可以依據
程式執行的方式來區別。
 一般來說 , 依執行方式程式語言分成編譯式語言與直
譯式語言兩種。
編譯式的程式語言
 所謂編譯式的程式語言 , 其執行的方式是先將整個程
式從頭到尾讀完 , 翻譯成機器碼後 , 電腦才開始依據
程式中所描述的動作一一執行。
 這就好像是一本翻譯書 , 是先將原文書整個從頭到尾
先翻譯好 , 然後才拿給讀者閱讀。
 這種作法的好處是 , 只要書已經翻譯好 , 那麼往後不
論甚麼時候需要閱讀 , 都不需要再重新翻譯 , 就可以
直接閱讀翻譯好的版本。
 不過相對來說 , 在第一次想要閱讀之前 , 就必須先花
時間等待譯者翻譯完畢才行。
編譯式的程式語言
 對應到電腦實際的運作方式 , 編譯式的程式語言執行
的方式是先使用該語言的編譯器 (Compiler) 將撰寫
好的原始程式轉譯成為機器碼 , 然後再執行這份機器
碼。
 以後每次要執行同一個程式時 , 就只需要執行這份轉
譯好的機器碼 , 而不需要花費時間重複再做轉譯的動
作。
編譯式的程式語言
 不過由於每種電腦的機器語言並不相同 , 比如說我們
常用的個人電腦 (PC) 和 IBM 大型主機的機器語言
就不相同 , 因此 , 同一個程式如果要在不同的機器上
執行 , 就必須使用專為該種電腦所設計的編譯器 , 轉
譯出符合該電腦的機器碼才行。
直譯式的程式語言
 直譯式的程式語言剛好和編譯式的程式語言相反 , 並
不先將整個程式讀完 , 而是每讀取程式中所描述的一
個動作 , 電腦隨即執行相對應的動作 , 這樣邊讀程式
、邊做動作。
 這就好像是參加國際會議時的現場口譯一樣 , 主講者
邊講 , 口譯者便即時翻譯出來給大家聽。
直譯式的程式語言
 這種作法的好處是 , 只要主講者講完第一句話 , 口譯
者便開始翻譯 , 而不需要等待主講者整篇發言完畢。
 相對的 , 由於口譯者即時翻譯完就結束了 , 因此如果
需要重新聽一遍 , 就只好從頭再請口譯者翻譯一遍了
。
 對應到電腦實際的運作方式 , 直譯式的程式語言就是
透過所謂的解譯器 (Interpreter ), 每閱讀完程式中所
描述的一部份 , 便立即要求電腦進行對應的動作 , 一
直到整個程式執行完畢為止。
直譯式的程式語言
 由於沒有儲存轉譯的結果 , 因此往後每次要再執行相
同的程式時 , 都必須要再花費時間透過解譯器重新轉
譯。
 相對的 , 直譯式的好處是程式寫完立即就可以開始執
行 , 而不需等待轉譯。
程式語言種類與執行方式的關係

 大部分的程式語言 , 都有其固有的執行方式。比如說
, C 語言與 Pascal 一般都是編譯式 , 而 Basic 一
般則是直譯式。
 不過這並不是絕對 , 也有某些軟體公司為 C 語言做
出直譯式的解譯器;相同的 , 也有軟體公司為 Basic
語言做出編譯器。
 不論是編譯式或是直譯式 , 兩種方法各有巧妙 , 而以
目前較為流行的程式語言來說 , 兩種方式都各有擅場。
在下一節中 , 我們還會看到 , Java 可以算是混合的
執行方式 , 不但具有編譯式的特質 , 也可以算是直譯
式的程式語言。
1-2 Java 程式語言簡介
 Java 程式語言的演進 , 橫生趣味 , 頗富傳奇 , 在這
一節中 , 我們會針對 Java 演進的歷史 , 以及 Java
程式語言的特色做說明 , 讓大家能在開始動手寫程式
之前 , 對 Java 程式語言有基本的認識。
1-2-1 Java 程式語言的演進
 Java 程式語言最早可追溯到 1990 年昇陽公司
(Sun Microsystems) 為資訊家電 (Information
Appliance) 所組成的 『 Green 』 小組。
 這個小組在 1992 年的時候開發了一個稱為 『 Star
Seven (*7) 』 的小電腦 ( 有點像是今日流行的 PDA)
, Java 就是當時用來在這台小電腦上執行的程式語言
。
Java 程式語言的演進
 不過當時 Java 並不叫做 Java, 而是稱為 Oak, 主
因是 Green 小組成員 James Gosling 的辦公室窗
外正好有一棵橡樹 , 因此取名為 Oak 。
 但因為 Oak 已經被其他公司註冊為商標 , 因此小組
成員才將這個新的程式語言以平日工作時不離手的咖
啡名稱命名 , Java 於焉誕生。
Java 程式語言的演進
 在 1995 年 Java 程式語言正式公開時 , 主要是用
來撰寫在網頁上執行的小程式 , 稱為 『 Java Applet
』 , 以便提供網頁與使用者互動的功能。
 隨後在昇陽公司長期規劃之下 , Java 程式語言不但
成為軟體開發的主流之一 , 而且功能越加完善 , 涵蓋
了一般應用軟體到網際網路應用程式、電子商務 , 無
一不是 Java 可以發揮長處的場合。
1-2-2 Java 程式語言的特色
 Java 程式語言之所以能夠風行全球 , 成為許多軟體
開發人員的最愛 , 主要是因為它擁有幾項特點 , 使得
軟體開發人員在選擇程式語言時 , 能夠脫穎而出。
簡單
 程式語言隨著年代的演進 , 功能雖然越來越強 , 但是
語言本身也越來越繁複 , 對於軟體開發人員來說 , 不
但整個學習與熟練的時間變長 , 程式的除錯也越來越
困難。
 也正因為如此 , Green 小組便捨棄了早期採用的 C+
+, 而自行發明了 Java, 就是將程式語言最精髓的部
分萃取出來 , 以降低軟體開發人員的負擔。
跨平台 (Cross-Platform)
 如同上一節所提到 , 直譯式的語言雖然方便 , 但每次
執行都必須重新轉譯 , 對於執行的效率有一定的影響
。
 編譯式的語言雖然可以重複執行轉譯完的成果 , 但因
為不同電腦的機器語言有所差異 , 同樣的程式到了不
同的電腦上 , 還是得重新編譯才能執行。
跨平台 (Cross-Platform)
 為了解決以上的問題 , Java 程式語言採取了混合式
的作法。
 首先 , Java 語言設計了一個假的電腦 , 稱為 Java
虛 擬機器 (Java Virtual Machine), 寫好的 Java 程
式就在這個假的電腦上執行。
 換言之 , Java 雖然採取編譯式的方式 , 但卻是將
Java 程式轉譯成 Java 虛擬機器的機器碼 ( 在
Java 中稱為 Byte Code) , 而不是直接轉譯成真正
電腦的機器碼;要執行程式時 , 再由 Java 虛擬機器
以直譯的方式 , 將 Byte Code 轉譯成機器碼讓真正
跨平台 (Cross-Platform)

 透過這樣的方式 , 只要在不同種類的電腦上都先安裝
其適用的 Java 虛擬機器 , 那麼 Java 程式不需重
新編譯就可以直接在各類型的電腦上執行。
 由於有這樣的特點 , 因此 Java 程式語言在一開始就
打出 『 Write once, run everywhere 』 的口號。
網路功能 (Networking)
 由於 Java 程式語言一開始的設計就已經考慮到了網
路 , 因此隨著網際網路日益盛行 , 對於開發網路應用
軟體特別便利的 Java, 自然成為開發人員優先考量
的選擇了。
例外處理 (Exception Handling)
 天下事未必都能盡如人意 , 程式執行的時候也有許多
出人意料的狀況 , 比如說網路突然斷線、硬碟空間不
足、所要開啟的檔案被其他人刪除等等。
 軟體開發人員往往必須使用複雜的邏輯與程式碼來處
理這些狀況 , 而 Java 程式語言採集 C++ 程式語言
的例外處理方式 , 去蕪存菁後 , 提供給軟體開發人員
一個簡單而又功能完善的架構 , 可以妥善處理種種的
例外狀況。
標準萬國碼 (Unicode)
 Java 程式語言內部採用 Unicode 來處理文字 , 這
也代表著不論你是哪一個國家或地區的開發人員 , 都
不必擔心 Java 不支援你所使用的語言 , 省去了軟體
開發人員必須處理當地語言的煩惱。
多執行緒 (Multithreading)
 Java 程式語言擁有多執行緒的功能 , 使得多段程式
碼可以近似同時的方式執行 , 更有效率的利用電腦的
資源 , 也使得軟體開發人員在撰寫程式時 , 可以更方
便的解決問題。
資源回收系統 (Garbage Collection)
 由於 Java 虛擬機器會自動管理記憶體的使用。
 因此 , 軟體開發人員再也不必擔心自己配置的記憶體
沒有歸還 , 導致記憶體不敷使用 , 或者是將資料寫入
到不正確的地方等等繁瑣的問題 , 讓軟體開發人員可
以將心力專注於程式的邏輯 , 而不是一些旁枝末節上
。
物件導向
 Java 在一開始的設計上就是以物件導向為核心 , 達
到程式碼可重用性 , 並可搭配相關軟體開發工具。
開發工具隨處可得
 基本的 Java 開發工具都是免費的 , 只要上網 , 就可
以下載最新版本的開發工具 , 而不需要先耗費鉅資購
買產品。
Java 程式語言的特色
 由於以上這些特性 , 使得 Java 演化至今日 , 可以說
是已經開花結果 , 不但在各種應用場合中發揮功用 ,
也使得 Java 幾乎成為昇陽公司的代名詞了。
1-2-3 Java 平台簡介
 在 Java 中 , 我們將可以執行 Java 程式的環境稱
為 Java 平台 (Java Platform), 其中 , 根據不同環
境的特性 , 又可以區分為三種 Java 平台 , 分述如下
:
▪ Java SE (Java Standard Edition) :這是一般應用的
執行環境 , 像是常見的個人電腦上所提供的 Java 執
行環境就屬於這一種。如果沒有特別區分 , 那麼一般
所提的 Java 平台也多是指此 , 而這個平台也是本書
所介紹的主角。
Java 平台簡介
▪ Java ME (Java Micro Edition) :泛指消費性裝置上的
Java 執行環境 , 像是手機、 PDA 等等 , 就屬於這一
類。由於此類裝置的限制 , 因此 Java ME 提供的能
力比較簡化。
▪ Java EE (Java Enterprise Edition) :這是為了商業運
用所建構的平台 , 提供大規模運算所需的能力。
Java 平台簡介
 每一種平台皆對應有其開發套件 , 例如 Java SE 的
開發套件稱為 Java SE Development Kit ( 簡稱
JDK), 只要下載這個套件 , 就可以立即開發 Java 程
式。
1-3 SCJP 認證簡介
 Java 的認證中最基礎的就是 SCJP (Sun Certified
Java Programmer ) 認證 , 這項認證主要是測試受試
者對於 Java 程式語言的熟練度以及理解程度。
 不論是要繼續取得 SCJD (Sun Certified Java
Developer), 或是想要朝企業層級取得 J2EE 平台認
證 , 都必須先通過 SCJP 認證。
 若要查詢 Java 的各種認證資訊 , 可瀏覽 Sun 教育
訓練中心網站
(https://www.suntrainingcatalogue.com, 注意 http
之後要加 s ) , 然後點選 Chinese/Taiwan 連結 , 再
SCJP 認證簡介
SCJP 認證簡介
SCJP 認證簡介
▪ 昇陽公司於 2005 推出一個最 『基層』 的 SCJA
(Sun Certified Java Associate), 不過其考試範圍涵蓋
企業、網路應用等範圍 , 且對於報考更高層的認證考
試而言 , 仍只要求應試者需先取得 SCJP 認證 , 而沒
有任何考試是以通過 SCJA 為前題。因此對想按步就
班 , 逐步取得 Java 各級認證者 , 只需以 SCJP 為
基礎即可 , 可不必考慮 SCJA 。
SCJP 認證簡介
 SCJP 各種考試的 JDK 適用版本、題數、合格條件
等資訊 , 如下表所示 ( 資格欄為升級者 , 表示必須已
取得 SCJP 任何版本的認證 , 才能參加考試 ) :

▪ 目前認證考試的費用為新台幣 6,600 元 , 若為升級考
試則為 5,000 元。台灣地區的考生可選擇中文試題。
SCJP 認證簡介
 對本書大多數的讀者來說 , 應該都是 Java 的初學者
, 建議可以直接選擇報考 JDK 6 的考試。如果您曾
經取得之前版本的認證 , 當然也可以報考升級考試 ,
價格也較便宜。
 複選題的部份 , 就是一般常見的選擇題 , 有些題目只
有單一答案 , 有些則需選取多個答案 ( 若為複選在題
目中會有提示 ) 。
 拖放題有點類似『填充題 + 連連看』 , 就是將答案
拉曳到正確的空格中 , 每一題通常會有多個空格 , 您
必須由答案區中拖曳正確的答案來放入空格內。
考試範圍
 由於 SCJP 所要測驗的是對於 Java 程式語言的熟
練程度 , 因此主要的出題範圍都是 Java 程式語言基
礎的部分 , 以本書為例 , 除了附錄以外 , 第 1~18
章都是 SCJP 的出題範圍。
▪ 有關考試的詳細範圍 , 可以在前面的網頁中點選相關
考試項目 , 即可取得詳細的考試內容說明。
如何報考
 要報考 Java 認證 , 可以向昇陽公司授權的教育訓練
中心購買認證卷 , 您可在下列網址查看方便連絡的授
權訓練中心 , 然後至各訓練中心直接購買 , 或在該網
頁中下載認證券訂購單 , 以傳真的方式訂購:
https://www.suntrainingcatalogue.com/eduserv/client/viewProm.do?pr_id=
2444&1=2H_TW ( 注意 h t t p 之後要加 s )
如何報考
如何報考
 購得認證卷後 , 即可至 Sun 授權的 Prometric 認證
中心網站線上報名 ( 詳見上述網頁說明 ), 並預約考
試時間及地點 , 等收到了考試確認書後即可參加考試
。
1. Which are included in Java platform? (Choose al l
that apply.)
A. Java EE.
B. Java WE.
C. Java SE.
D. Java DE.
E. Java ME.
2. Which are the chara cters of Java te chnology?
(Choose al l that apply.)
A. Procedure-Oriented Language.
B. Garbage Collection.
C. Exception Handling
D. Cross Platform
E. Doublethreading
3. Please drag and drop the appropriate Words into the
following empty boxes:
In the Java programming language, all source code is first
written in plain text files. Those source files are then Place
here into Place here — the machine language of the Place
here . The javalauncher tool then runs your application with
an instance of the Java Virtual Machine.
Words:
machinecodes bytecodes interpreted
compiled Java VM Computer

Weitere ähnliche Inhalte

Ähnlich wie SCJP ch01

React.js what do you really mean?
React.js what do you really mean?React.js what do you really mean?
React.js what do you really mean?昱安 周
 
2012 java two-desktop-appliction-using-j-ruby-with-swt
2012 java two-desktop-appliction-using-j-ruby-with-swt2012 java two-desktop-appliction-using-j-ruby-with-swt
2012 java two-desktop-appliction-using-j-ruby-with-swttka
 
從 Java programmer 的觀點看 ruby
從 Java programmer 的觀點看 ruby從 Java programmer 的觀點看 ruby
從 Java programmer 的觀點看 ruby建興 王
 
Java 基礎入門1
Java 基礎入門1Java 基礎入門1
Java 基礎入門1li1920li
 
漫谈php和java
漫谈php和java漫谈php和java
漫谈php和javasulong
 
如何用十分鐘快速瞭解一個程式語言 《以JavaScript和C語言為例》
如何用十分鐘快速瞭解一個程式語言  《以JavaScript和C語言為例》如何用十分鐘快速瞭解一個程式語言  《以JavaScript和C語言為例》
如何用十分鐘快速瞭解一個程式語言 《以JavaScript和C語言為例》鍾誠 陳鍾誠
 
Struts Mitac(1)
Struts Mitac(1)Struts Mitac(1)
Struts Mitac(1)wangjiaz
 
Java Tutorial:Learn Java in 06:00:00
Java Tutorial:Learn Java in 06:00:00Java Tutorial:Learn Java in 06:00:00
Java Tutorial:Learn Java in 06:00:00Justin Lin
 
一個微信專案從0到000的效能調教
一個微信專案從0到000的效能調教一個微信專案從0到000的效能調教
一個微信專案從0到000的效能調教Bruce Chen
 
Csdn Java电子杂志第1期
Csdn Java电子杂志第1期Csdn Java电子杂志第1期
Csdn Java电子杂志第1期yiditushe
 
Java Web框架汇总
Java Web框架汇总Java Web框架汇总
Java Web框架汇总yiditushe
 
Java2新觀念教本投影片ch1
Java2新觀念教本投影片ch1Java2新觀念教本投影片ch1
Java2新觀念教本投影片ch15045033
 
2. java introduction
2. java introduction2. java introduction
2. java introductionnetdbncku
 
000 北京圣思园教育科技有限公司第一期面授培训大纲
000 北京圣思园教育科技有限公司第一期面授培训大纲000 北京圣思园教育科技有限公司第一期面授培训大纲
000 北京圣思园教育科技有限公司第一期面授培训大纲ArBing Xie
 
iThome Modern Web 2018: 如何打造高效的機器學習平台
iThome Modern Web 2018: 如何打造高效的機器學習平台iThome Modern Web 2018: 如何打造高效的機器學習平台
iThome Modern Web 2018: 如何打造高效的機器學習平台Evan Lin
 
程式交易介紹及 FinTech 創作分享
程式交易介紹及 FinTech 創作分享程式交易介紹及 FinTech 創作分享
程式交易介紹及 FinTech 創作分享Philip Zheng
 
twMVC#21 | 以實例說明ASP.NET Web API 服務的開發與測試過程
twMVC#21 | 以實例說明ASP.NET Web API 服務的開發與測試過程twMVC#21 | 以實例說明ASP.NET Web API 服務的開發與測試過程
twMVC#21 | 以實例說明ASP.NET Web API 服務的開發與測試過程twMVC
 

Ähnlich wie SCJP ch01 (20)

beidakejian
beidakejianbeidakejian
beidakejian
 
React.js what do you really mean?
React.js what do you really mean?React.js what do you really mean?
React.js what do you really mean?
 
2012 java two-desktop-appliction-using-j-ruby-with-swt
2012 java two-desktop-appliction-using-j-ruby-with-swt2012 java two-desktop-appliction-using-j-ruby-with-swt
2012 java two-desktop-appliction-using-j-ruby-with-swt
 
從 Java programmer 的觀點看 ruby
從 Java programmer 的觀點看 ruby從 Java programmer 的觀點看 ruby
從 Java programmer 的觀點看 ruby
 
Java 基礎入門1
Java 基礎入門1Java 基礎入門1
Java 基礎入門1
 
漫谈php和java
漫谈php和java漫谈php和java
漫谈php和java
 
SCJP ch02
SCJP ch02SCJP ch02
SCJP ch02
 
Android工作坊
Android工作坊Android工作坊
Android工作坊
 
如何用十分鐘快速瞭解一個程式語言 《以JavaScript和C語言為例》
如何用十分鐘快速瞭解一個程式語言  《以JavaScript和C語言為例》如何用十分鐘快速瞭解一個程式語言  《以JavaScript和C語言為例》
如何用十分鐘快速瞭解一個程式語言 《以JavaScript和C語言為例》
 
Struts Mitac(1)
Struts Mitac(1)Struts Mitac(1)
Struts Mitac(1)
 
Java Tutorial:Learn Java in 06:00:00
Java Tutorial:Learn Java in 06:00:00Java Tutorial:Learn Java in 06:00:00
Java Tutorial:Learn Java in 06:00:00
 
一個微信專案從0到000的效能調教
一個微信專案從0到000的效能調教一個微信專案從0到000的效能調教
一個微信專案從0到000的效能調教
 
Csdn Java电子杂志第1期
Csdn Java电子杂志第1期Csdn Java电子杂志第1期
Csdn Java电子杂志第1期
 
Java Web框架汇总
Java Web框架汇总Java Web框架汇总
Java Web框架汇总
 
Java2新觀念教本投影片ch1
Java2新觀念教本投影片ch1Java2新觀念教本投影片ch1
Java2新觀念教本投影片ch1
 
2. java introduction
2. java introduction2. java introduction
2. java introduction
 
000 北京圣思园教育科技有限公司第一期面授培训大纲
000 北京圣思园教育科技有限公司第一期面授培训大纲000 北京圣思园教育科技有限公司第一期面授培训大纲
000 北京圣思园教育科技有限公司第一期面授培训大纲
 
iThome Modern Web 2018: 如何打造高效的機器學習平台
iThome Modern Web 2018: 如何打造高效的機器學習平台iThome Modern Web 2018: 如何打造高效的機器學習平台
iThome Modern Web 2018: 如何打造高效的機器學習平台
 
程式交易介紹及 FinTech 創作分享
程式交易介紹及 FinTech 創作分享程式交易介紹及 FinTech 創作分享
程式交易介紹及 FinTech 創作分享
 
twMVC#21 | 以實例說明ASP.NET Web API 服務的開發與測試過程
twMVC#21 | 以實例說明ASP.NET Web API 服務的開發與測試過程twMVC#21 | 以實例說明ASP.NET Web API 服務的開發與測試過程
twMVC#21 | 以實例說明ASP.NET Web API 服務的開發與測試過程
 

Mehr von r82093403

Ciw going mobile
Ciw going mobileCiw going mobile
Ciw going mobiler82093403
 
The lpic 2 exam prep
The lpic 2 exam prepThe lpic 2 exam prep
The lpic 2 exam prepr82093403
 
Exploration network chapter3
Exploration network chapter3Exploration network chapter3
Exploration network chapter3r82093403
 
Exploration network chapter7
Exploration network chapter7Exploration network chapter7
Exploration network chapter7r82093403
 
Exploration network chapter11
Exploration network chapter11Exploration network chapter11
Exploration network chapter11r82093403
 
Exploration network chapter10
Exploration network chapter10Exploration network chapter10
Exploration network chapter10r82093403
 

Mehr von r82093403 (20)

Ciw going mobile
Ciw going mobileCiw going mobile
Ciw going mobile
 
The lpic 2 exam prep
The lpic 2 exam prepThe lpic 2 exam prep
The lpic 2 exam prep
 
SCJP ch17
SCJP ch17SCJP ch17
SCJP ch17
 
SCJP ch16
SCJP ch16SCJP ch16
SCJP ch16
 
SCJP ch14
SCJP ch14SCJP ch14
SCJP ch14
 
SCJP ch12
SCJP ch12SCJP ch12
SCJP ch12
 
SCJP ch11
SCJP ch11SCJP ch11
SCJP ch11
 
SCJP ch10
SCJP ch10SCJP ch10
SCJP ch10
 
SCJP ch09
SCJP ch09SCJP ch09
SCJP ch09
 
SCJP ch08
SCJP ch08SCJP ch08
SCJP ch08
 
SCJP ch07
SCJP ch07SCJP ch07
SCJP ch07
 
SCJP ch06
SCJP ch06SCJP ch06
SCJP ch06
 
SCJP ch05
SCJP ch05SCJP ch05
SCJP ch05
 
SCJP ch04
SCJP ch04SCJP ch04
SCJP ch04
 
SCJP ch03
SCJP ch03SCJP ch03
SCJP ch03
 
SCJP ch13
SCJP ch13SCJP ch13
SCJP ch13
 
Exploration network chapter3
Exploration network chapter3Exploration network chapter3
Exploration network chapter3
 
Exploration network chapter7
Exploration network chapter7Exploration network chapter7
Exploration network chapter7
 
Exploration network chapter11
Exploration network chapter11Exploration network chapter11
Exploration network chapter11
 
Exploration network chapter10
Exploration network chapter10Exploration network chapter10
Exploration network chapter10
 

SCJP ch01

  • 1. 第 1 章 Java 與 SCJP 簡介 本投影片(下稱教用資源)僅授權給採用教用資源相關之旗標書籍為教科書之授課老師(下稱老師)專用,老 師為教學使用之目的,得摘錄、編輯、重製教用資源(但使用量不得超過各該教用資源內容之 80% )以製作為 輔助教學之教學投影片,並於授課時搭配旗標書籍公開播放,但不得為網際網路公開傳輸之遠距教學、網路教 學等之使用;除此之外,老師不得再授權予任何第三人使用,並不得將依此授權所製作之教學投影片之相關著 作物移作他用。 著作權所有 © 旗標出版股份有限公司
  • 2. 學習目標  認識程式語言  Java 簡介  SCJP 認證簡介
  • 3. 前言  在這一章中 , 將為大家介紹甚麼是程式語言?  瞭解程式語言所扮演的角色 , 並且簡單說明程式語言 的演進 , 接著再由 Java 程式語言的歷史 , 一步步的 進入 Java 程式設計的領域。
  • 4. 1-1 甚麼是程式語言?  電腦就像是一位協助我們完成工作的朋友 , 當我們與 朋友一起工作時 , 會使用大家都可以聽懂的語言相互 溝通 , 以便讓對方瞭解我們希望他做甚麼?  舉例來說 , 大家都會說國語 , 因此在一般的情況下 , 只要以國語溝通 , 通常都可以正確的完成工作。  不過想像一下 , 如果今天到了一個客家村落 , 遇到了 一位老婆婆 , 她可能只聽得懂客家語 , 想要向她問路 , 國語可能就行不通了。
  • 5. 甚麼是程式語言?  這個情況在面對電腦的時候也是一樣 , 雖然科幻片中 聽得懂人說話的電腦不計其數 , 但到目前為止 , 這都 還是人類的夢想而已。  要想讓電腦幫我們工作 , 還是得說電腦懂得的語言 , 這種可以讓我們與電腦溝通的語言 , 就稱之為電腦語 言 (Computer Language ), 或者是程式語言 (Programming Language) 。
  • 6. 甚麼是程式語言?  簡單地來說 , 當我們要求電腦為我們工作時 , 可以 分為幾個步驟: 1. 先分析所要解決的問題。 2. 找出解決問題的步驟 , 這些步驟稱為解決此問題的演 算法 (Algorithm) 。 3. 使用程式語言表達出前述解決問題的步驟 , 這個動作 就稱為撰寫程式 (Writing Program), 或者是設計程 式 (Designing Program) 。
  • 7. 甚麼是程式語言? 4. 要求電腦依據上一步驟所寫好的程式執行 , 看看是否 能夠正確解決問題。這個動作就稱為測試 (Testing) 程式。 5. 如果執行的結果有問題 , 就再回到第 3 步 , 檢查所 撰寫的程式是否有錯誤 , 並加以修正 , 一直到程式的 執行結果完全符合預期為止。這個動作稱為除錯 (Debug) 。
  • 9. 甚麼是程式語言?  透過以上的步驟 , 就可以利用電腦解決許多問題了。  不過就如同人類語言的多樣性 , 程式語言也有許多不 同的種類 , 以下就程式語言本身的特質以及執行的方 式 , 再做進一步的解說。
  • 10. 演算法的定義  嚴格來說 , 一個演算法是要符合以下幾項規定: 1. 要明確的說 明輸入的資料:亦即依照這個演算法解決 問題時 , 要先具備的條件是甚麼。 2. 要明確的說 明產 生的結果:在特定的輸入資料下 , 這個演算法執行之後 , 會得到甚麼結果。只要輸入的 資料相同 , 這個演算法就應該要得到一樣的結果。
  • 11. 演算法的定義 3. 要能夠 在有限的步 驟內 完成:這一點是很重要的 , 否 則無法預估完成的時間。舉例來說 , 如果你立志要到 美國旅行 , 那麼達成這個目的的方法就不能是『假如 心情好 , 就存 10 元』 , 這不能稱為演算法 , 因為你 無法預估甚麼時候會完成;反之 , 如果改成『每天存 10 元』 , 那麼只要知道所需的總旅費 , 就可以知道 這個方法甚麼時候可以達成 , 這才能稱為演算法。 4. 要明確的說明每一個執行步驟的動作 , 而不能讓人不 知道該如何進行。 5. 要能證明可以解決問題。
  • 12. 演算法的定義  一個演算法基本上要能夠用紙筆就可以模擬出執行的 結果 , 而不一定要使用電腦或是其他工具 , 只是對於 比較複雜的演算法 , 我們不容易演練其執行過程而已 。
  • 13. 1-1-1 程式語言的演進與分類  電腦的程式語言也和人類的語言一樣 , 有許多種不同 的類型 , 在這一小節中 , 會以程式語言的本質 , 以及 語言本身的差異 , 來區分各種不同的程式語言。
  • 14. 機器語言 (Machine Language)  對於電腦來說 , 它真正所懂得的語言只有一種 , 就是 機器語言。  所謂的機器語言 , 其實就是以特定的數字來表示電腦 所能進行的各個動作 , 這些數字就稱為機器碼 (Machine Code) 。  舉例來說 , 如果把電腦比喻為機器人 , 而 0 代表要 機器人往前走一步、 1 代表往後退一步、 2 代表往 左轉 90 度 , 而 3 代表往右轉 90 度 , 那麼當你希 望機器人往前走三步、再往右走三步時 , 就必須下達 『 0003000 』的指令 , 當電腦看到這一串數字後 , 就會依據每個數字所代表的意義動作。
  • 16. 機器語言 (Machine Language)  任何一個人都可以看得出來 , 這種以數字表達的語言 並不適合人閱讀 , 除非我們是在玩團康遊戲 , 否則大 可不必考驗自己的記憶力。  除此之外 , 使用不同微處理器的電腦 , 其機器語言亦 不相同 , 換了另外一種電腦 , 0 可能代表的是往後走 一步 , 一樣下達 0003000, 到達的地方就天差地遠了 。  因此 , 除了早期電腦的時代 , 大家很快就發現要用這 種方式撰寫程式 , 實在太難了。
  • 17. 組合語言 (Assembly)  為了解決機器語言的難題 , 大家就想到了用一些符號 來替代數字 , 以方便人們辨識各個指令。  舉例來說 , 如果以 forward 代替原本的 0 、 backward 代替 1 、 left 代替 2, 而用 right 代替 3, 那麼同樣要往前走三步、再往右走三步的程式 , 寫起來就變成這樣:
  • 18. 組合語言 (Assembly)  像是這樣使用文字符號替代機器碼撰寫程式的語言 , 就稱為組合語言。  這種寫法絕對要比原本的 0003000 要容易懂得多 , 不過這樣一來 , 雖然人們看得懂 , 但是電腦卻看不懂 , 而必須透過一個翻譯的動作 , 將這個用組合語言寫 成的程式轉換成電腦看得懂的機器語言 , 負責這個翻 譯動作的就是組譯器 (Assembler) 。
  • 19. 高階語言  不論是機器語言還是組合語言 , 對於程式的描述都是 以電腦所能進行的最基本動作為步驟 , 因此這兩種語 言被稱為低階語言 ( Low-Level Language) 。  換言之 , 本來是希望機器人向前走三步 , 然後向右走 三步 , 但是因為電腦所能進行的基本動作的限制 , 使 得我們所寫出來的程式必須以 『向前走一步、向前 走一步、向前走一步、向右轉 9 0 度、向前走一步 、向前走一步、向前走一步』 這樣繁瑣的方式一步 步描述實際進行的動作 , 寫起程式來其實並不便利。
  • 20. 高階語言  為了解決這樣的問題 , 因此就有人設計新的語言 , 用 比較接近人類思考的方式來撰寫程式。  這種新的程式語言就稱為高階語言 (High-Level Language), 其中比較流行的有 C 、 Pascal 、 Basic 等等 , 使用這種語言 , 寫出來 的程式就會像是:  不但比較容易理解 , 也不會像是低階語言所寫出來的 程式那樣繁瑣。
  • 21. 高階語言  不過電腦並無法看懂這樣的程式 , 和組合語言一樣需 要一個轉譯的動作 , 將使用高階語言所撰寫的程式轉 換成電腦所能看懂的機器語言 , 然後才能依此執行。 這個轉換的動作就是由各種程式語言的編譯器 (Compiler ) 所進行。
  • 22. 物件導向程式語言  隨著軟體技術的不斷演進 , 程式語言又從高階語言改 良 , 而發展出物件導向程式語言 (Object-Oriented Language), 比較著名的有 Smalltalk 、 C+ + 、 C# 、以及本書的主題 Java 。  在後續的章節中 , 大家將可以看到物件導向程式語言 的特性 , 因此在這一節中 , 就不浪費篇幅撰述。
  • 23. 1-1-2 編譯式與直譯式的程式語言  除了以程式語言本身的特質來分類以外 , 也可以依據 程式執行的方式來區別。  一般來說 , 依執行方式程式語言分成編譯式語言與直 譯式語言兩種。
  • 24. 編譯式的程式語言  所謂編譯式的程式語言 , 其執行的方式是先將整個程 式從頭到尾讀完 , 翻譯成機器碼後 , 電腦才開始依據 程式中所描述的動作一一執行。  這就好像是一本翻譯書 , 是先將原文書整個從頭到尾 先翻譯好 , 然後才拿給讀者閱讀。  這種作法的好處是 , 只要書已經翻譯好 , 那麼往後不 論甚麼時候需要閱讀 , 都不需要再重新翻譯 , 就可以 直接閱讀翻譯好的版本。  不過相對來說 , 在第一次想要閱讀之前 , 就必須先花 時間等待譯者翻譯完畢才行。
  • 25. 編譯式的程式語言  對應到電腦實際的運作方式 , 編譯式的程式語言執行 的方式是先使用該語言的編譯器 (Compiler) 將撰寫 好的原始程式轉譯成為機器碼 , 然後再執行這份機器 碼。  以後每次要執行同一個程式時 , 就只需要執行這份轉 譯好的機器碼 , 而不需要花費時間重複再做轉譯的動 作。
  • 26. 編譯式的程式語言  不過由於每種電腦的機器語言並不相同 , 比如說我們 常用的個人電腦 (PC) 和 IBM 大型主機的機器語言 就不相同 , 因此 , 同一個程式如果要在不同的機器上 執行 , 就必須使用專為該種電腦所設計的編譯器 , 轉 譯出符合該電腦的機器碼才行。
  • 27. 直譯式的程式語言  直譯式的程式語言剛好和編譯式的程式語言相反 , 並 不先將整個程式讀完 , 而是每讀取程式中所描述的一 個動作 , 電腦隨即執行相對應的動作 , 這樣邊讀程式 、邊做動作。  這就好像是參加國際會議時的現場口譯一樣 , 主講者 邊講 , 口譯者便即時翻譯出來給大家聽。
  • 28. 直譯式的程式語言  這種作法的好處是 , 只要主講者講完第一句話 , 口譯 者便開始翻譯 , 而不需要等待主講者整篇發言完畢。  相對的 , 由於口譯者即時翻譯完就結束了 , 因此如果 需要重新聽一遍 , 就只好從頭再請口譯者翻譯一遍了 。  對應到電腦實際的運作方式 , 直譯式的程式語言就是 透過所謂的解譯器 (Interpreter ), 每閱讀完程式中所 描述的一部份 , 便立即要求電腦進行對應的動作 , 一 直到整個程式執行完畢為止。
  • 29. 直譯式的程式語言  由於沒有儲存轉譯的結果 , 因此往後每次要再執行相 同的程式時 , 都必須要再花費時間透過解譯器重新轉 譯。  相對的 , 直譯式的好處是程式寫完立即就可以開始執 行 , 而不需等待轉譯。
  • 30. 程式語言種類與執行方式的關係  大部分的程式語言 , 都有其固有的執行方式。比如說 , C 語言與 Pascal 一般都是編譯式 , 而 Basic 一 般則是直譯式。  不過這並不是絕對 , 也有某些軟體公司為 C 語言做 出直譯式的解譯器;相同的 , 也有軟體公司為 Basic 語言做出編譯器。  不論是編譯式或是直譯式 , 兩種方法各有巧妙 , 而以 目前較為流行的程式語言來說 , 兩種方式都各有擅場。 在下一節中 , 我們還會看到 , Java 可以算是混合的 執行方式 , 不但具有編譯式的特質 , 也可以算是直譯 式的程式語言。
  • 31. 1-2 Java 程式語言簡介  Java 程式語言的演進 , 橫生趣味 , 頗富傳奇 , 在這 一節中 , 我們會針對 Java 演進的歷史 , 以及 Java 程式語言的特色做說明 , 讓大家能在開始動手寫程式 之前 , 對 Java 程式語言有基本的認識。
  • 32. 1-2-1 Java 程式語言的演進  Java 程式語言最早可追溯到 1990 年昇陽公司 (Sun Microsystems) 為資訊家電 (Information Appliance) 所組成的 『 Green 』 小組。  這個小組在 1992 年的時候開發了一個稱為 『 Star Seven (*7) 』 的小電腦 ( 有點像是今日流行的 PDA) , Java 就是當時用來在這台小電腦上執行的程式語言 。
  • 33. Java 程式語言的演進  不過當時 Java 並不叫做 Java, 而是稱為 Oak, 主 因是 Green 小組成員 James Gosling 的辦公室窗 外正好有一棵橡樹 , 因此取名為 Oak 。  但因為 Oak 已經被其他公司註冊為商標 , 因此小組 成員才將這個新的程式語言以平日工作時不離手的咖 啡名稱命名 , Java 於焉誕生。
  • 34. Java 程式語言的演進  在 1995 年 Java 程式語言正式公開時 , 主要是用 來撰寫在網頁上執行的小程式 , 稱為 『 Java Applet 』 , 以便提供網頁與使用者互動的功能。  隨後在昇陽公司長期規劃之下 , Java 程式語言不但 成為軟體開發的主流之一 , 而且功能越加完善 , 涵蓋 了一般應用軟體到網際網路應用程式、電子商務 , 無 一不是 Java 可以發揮長處的場合。
  • 35. 1-2-2 Java 程式語言的特色  Java 程式語言之所以能夠風行全球 , 成為許多軟體 開發人員的最愛 , 主要是因為它擁有幾項特點 , 使得 軟體開發人員在選擇程式語言時 , 能夠脫穎而出。
  • 36. 簡單  程式語言隨著年代的演進 , 功能雖然越來越強 , 但是 語言本身也越來越繁複 , 對於軟體開發人員來說 , 不 但整個學習與熟練的時間變長 , 程式的除錯也越來越 困難。  也正因為如此 , Green 小組便捨棄了早期採用的 C+ +, 而自行發明了 Java, 就是將程式語言最精髓的部 分萃取出來 , 以降低軟體開發人員的負擔。
  • 37. 跨平台 (Cross-Platform)  如同上一節所提到 , 直譯式的語言雖然方便 , 但每次 執行都必須重新轉譯 , 對於執行的效率有一定的影響 。  編譯式的語言雖然可以重複執行轉譯完的成果 , 但因 為不同電腦的機器語言有所差異 , 同樣的程式到了不 同的電腦上 , 還是得重新編譯才能執行。
  • 38. 跨平台 (Cross-Platform)  為了解決以上的問題 , Java 程式語言採取了混合式 的作法。  首先 , Java 語言設計了一個假的電腦 , 稱為 Java 虛 擬機器 (Java Virtual Machine), 寫好的 Java 程 式就在這個假的電腦上執行。  換言之 , Java 雖然採取編譯式的方式 , 但卻是將 Java 程式轉譯成 Java 虛擬機器的機器碼 ( 在 Java 中稱為 Byte Code) , 而不是直接轉譯成真正 電腦的機器碼;要執行程式時 , 再由 Java 虛擬機器 以直譯的方式 , 將 Byte Code 轉譯成機器碼讓真正
  • 39. 跨平台 (Cross-Platform)  透過這樣的方式 , 只要在不同種類的電腦上都先安裝 其適用的 Java 虛擬機器 , 那麼 Java 程式不需重 新編譯就可以直接在各類型的電腦上執行。  由於有這樣的特點 , 因此 Java 程式語言在一開始就 打出 『 Write once, run everywhere 』 的口號。
  • 40. 網路功能 (Networking)  由於 Java 程式語言一開始的設計就已經考慮到了網 路 , 因此隨著網際網路日益盛行 , 對於開發網路應用 軟體特別便利的 Java, 自然成為開發人員優先考量 的選擇了。
  • 41. 例外處理 (Exception Handling)  天下事未必都能盡如人意 , 程式執行的時候也有許多 出人意料的狀況 , 比如說網路突然斷線、硬碟空間不 足、所要開啟的檔案被其他人刪除等等。  軟體開發人員往往必須使用複雜的邏輯與程式碼來處 理這些狀況 , 而 Java 程式語言採集 C++ 程式語言 的例外處理方式 , 去蕪存菁後 , 提供給軟體開發人員 一個簡單而又功能完善的架構 , 可以妥善處理種種的 例外狀況。
  • 42. 標準萬國碼 (Unicode)  Java 程式語言內部採用 Unicode 來處理文字 , 這 也代表著不論你是哪一個國家或地區的開發人員 , 都 不必擔心 Java 不支援你所使用的語言 , 省去了軟體 開發人員必須處理當地語言的煩惱。
  • 43. 多執行緒 (Multithreading)  Java 程式語言擁有多執行緒的功能 , 使得多段程式 碼可以近似同時的方式執行 , 更有效率的利用電腦的 資源 , 也使得軟體開發人員在撰寫程式時 , 可以更方 便的解決問題。
  • 44. 資源回收系統 (Garbage Collection)  由於 Java 虛擬機器會自動管理記憶體的使用。  因此 , 軟體開發人員再也不必擔心自己配置的記憶體 沒有歸還 , 導致記憶體不敷使用 , 或者是將資料寫入 到不正確的地方等等繁瑣的問題 , 讓軟體開發人員可 以將心力專注於程式的邏輯 , 而不是一些旁枝末節上 。
  • 45. 物件導向  Java 在一開始的設計上就是以物件導向為核心 , 達 到程式碼可重用性 , 並可搭配相關軟體開發工具。
  • 46. 開發工具隨處可得  基本的 Java 開發工具都是免費的 , 只要上網 , 就可 以下載最新版本的開發工具 , 而不需要先耗費鉅資購 買產品。
  • 47. Java 程式語言的特色  由於以上這些特性 , 使得 Java 演化至今日 , 可以說 是已經開花結果 , 不但在各種應用場合中發揮功用 , 也使得 Java 幾乎成為昇陽公司的代名詞了。
  • 48. 1-2-3 Java 平台簡介  在 Java 中 , 我們將可以執行 Java 程式的環境稱 為 Java 平台 (Java Platform), 其中 , 根據不同環 境的特性 , 又可以區分為三種 Java 平台 , 分述如下 : ▪ Java SE (Java Standard Edition) :這是一般應用的 執行環境 , 像是常見的個人電腦上所提供的 Java 執 行環境就屬於這一種。如果沒有特別區分 , 那麼一般 所提的 Java 平台也多是指此 , 而這個平台也是本書 所介紹的主角。
  • 49. Java 平台簡介 ▪ Java ME (Java Micro Edition) :泛指消費性裝置上的 Java 執行環境 , 像是手機、 PDA 等等 , 就屬於這一 類。由於此類裝置的限制 , 因此 Java ME 提供的能 力比較簡化。 ▪ Java EE (Java Enterprise Edition) :這是為了商業運 用所建構的平台 , 提供大規模運算所需的能力。
  • 50. Java 平台簡介  每一種平台皆對應有其開發套件 , 例如 Java SE 的 開發套件稱為 Java SE Development Kit ( 簡稱 JDK), 只要下載這個套件 , 就可以立即開發 Java 程 式。
  • 51. 1-3 SCJP 認證簡介  Java 的認證中最基礎的就是 SCJP (Sun Certified Java Programmer ) 認證 , 這項認證主要是測試受試 者對於 Java 程式語言的熟練度以及理解程度。  不論是要繼續取得 SCJD (Sun Certified Java Developer), 或是想要朝企業層級取得 J2EE 平台認 證 , 都必須先通過 SCJP 認證。  若要查詢 Java 的各種認證資訊 , 可瀏覽 Sun 教育 訓練中心網站 (https://www.suntrainingcatalogue.com, 注意 http 之後要加 s ) , 然後點選 Chinese/Taiwan 連結 , 再
  • 54. SCJP 認證簡介 ▪ 昇陽公司於 2005 推出一個最 『基層』 的 SCJA (Sun Certified Java Associate), 不過其考試範圍涵蓋 企業、網路應用等範圍 , 且對於報考更高層的認證考 試而言 , 仍只要求應試者需先取得 SCJP 認證 , 而沒 有任何考試是以通過 SCJA 為前題。因此對想按步就 班 , 逐步取得 Java 各級認證者 , 只需以 SCJP 為 基礎即可 , 可不必考慮 SCJA 。
  • 55. SCJP 認證簡介  SCJP 各種考試的 JDK 適用版本、題數、合格條件 等資訊 , 如下表所示 ( 資格欄為升級者 , 表示必須已 取得 SCJP 任何版本的認證 , 才能參加考試 ) : ▪ 目前認證考試的費用為新台幣 6,600 元 , 若為升級考 試則為 5,000 元。台灣地區的考生可選擇中文試題。
  • 56. SCJP 認證簡介  對本書大多數的讀者來說 , 應該都是 Java 的初學者 , 建議可以直接選擇報考 JDK 6 的考試。如果您曾 經取得之前版本的認證 , 當然也可以報考升級考試 , 價格也較便宜。  複選題的部份 , 就是一般常見的選擇題 , 有些題目只 有單一答案 , 有些則需選取多個答案 ( 若為複選在題 目中會有提示 ) 。  拖放題有點類似『填充題 + 連連看』 , 就是將答案 拉曳到正確的空格中 , 每一題通常會有多個空格 , 您 必須由答案區中拖曳正確的答案來放入空格內。
  • 57. 考試範圍  由於 SCJP 所要測驗的是對於 Java 程式語言的熟 練程度 , 因此主要的出題範圍都是 Java 程式語言基 礎的部分 , 以本書為例 , 除了附錄以外 , 第 1~18 章都是 SCJP 的出題範圍。 ▪ 有關考試的詳細範圍 , 可以在前面的網頁中點選相關 考試項目 , 即可取得詳細的考試內容說明。
  • 58. 如何報考  要報考 Java 認證 , 可以向昇陽公司授權的教育訓練 中心購買認證卷 , 您可在下列網址查看方便連絡的授 權訓練中心 , 然後至各訓練中心直接購買 , 或在該網 頁中下載認證券訂購單 , 以傳真的方式訂購: https://www.suntrainingcatalogue.com/eduserv/client/viewProm.do?pr_id= 2444&1=2H_TW ( 注意 h t t p 之後要加 s )
  • 60. 如何報考  購得認證卷後 , 即可至 Sun 授權的 Prometric 認證 中心網站線上報名 ( 詳見上述網頁說明 ), 並預約考 試時間及地點 , 等收到了考試確認書後即可參加考試 。
  • 61. 1. Which are included in Java platform? (Choose al l that apply.) A. Java EE. B. Java WE. C. Java SE. D. Java DE. E. Java ME.
  • 62. 2. Which are the chara cters of Java te chnology? (Choose al l that apply.) A. Procedure-Oriented Language. B. Garbage Collection. C. Exception Handling D. Cross Platform E. Doublethreading
  • 63. 3. Please drag and drop the appropriate Words into the following empty boxes: In the Java programming language, all source code is first written in plain text files. Those source files are then Place here into Place here — the machine language of the Place here . The javalauncher tool then runs your application with an instance of the Java Virtual Machine. Words: machinecodes bytecodes interpreted compiled Java VM Computer