1、程式語言與Java的基礎 1-1 程式語言的基礎 1-2 Java的基礎 1-3 Java語言的開發環境 1-4 建立Java語言的開發環境11-1 程式語言的基礎 1-1-1 程式、軟體與應用程式 1-1-2 程式語言的種類 1-1-3 低階語言 1-1-4 高階語言 1-1-5 程式是如何執行 1-1 程式語言的基礎 程式語言(Programming Languages)如同人與人之間溝通的語言,它是人類告訴電腦如何工作的一種語言,即人類與電腦之間進行溝通的語言。以技術角度來說,程式語言是一種將執行指令傳達給電腦的標準通訊技術。1-1-1 程式、軟體與應用程式-程式 程式(Programs
2、)是使用指定程式語言所撰寫沒有混淆文字、數字和鍵盤符號組成的特殊符號,這些符號組合成指令和敘述,再進一步編寫成程式碼,程式碼可以告訴電腦解決指定問題的步驟。簡單的說,程式就像是一個轉換器,當從電腦鍵盤或滑鼠取得輸入資料後,執行程式就可以將資料轉換成有用的資訊,如下圖所示:1-1-1 程式、軟體與應用程式-軟體與應用程式 軟體(Softwares)是一種電腦執行的應用程式或作業系統,通常軟體是一個或多個程式的泛稱,或整套應用程式。應用程式(Applications)是一種處理指定工作的電腦程式,例如:數學計算分析、文書處理、試算表和程式語言整合開發工具等。1-1-2 程式語言的種類-說明 程式語
3、言隨著電腦科技的進步,已經延伸出龐大的族群。在程式語言的分類上,使用發展世代來區分可以分為五世代,如下表所示:世代世代程式語言程式語言第一世代機器語言(Machine Languages)第二世代組合語言(Assembly Languages)第三世代高階語言(High Level Languages)第四世代應用程式產生的語言(Application-Generation Languages)或查詢語言(Query Languages)第五世代邏輯導向語言(Logic-Oriented Languages)1-1-3 低階語言-說明 低階語言(Low Level Languages)是一種偏
4、向電腦容易了解的程式語言,簡單的說,它是電腦看得懂的程式語言。所以執行效率高,但是使用者並不易學習。主要的低階語言有兩種:機器語言。組合語言。1-1-3 低階語言-機器語言機器語言(Machine Language)機器語言的程式是使用0和1二進位來表示的程式碼,電腦可以直接執行機器語言的程式碼,所以執行效率最高,如下所示:0111 0001 0000 11111001 1101 1011 00011-1-3 低階語言-組合語言組合語言(Assembly Language)組合語言是使用簡單符號的指令集來代表機器語言0和1表示的二進位程式碼。其建立的程式碼只需使用組譯程式(Assemblers
5、)就可以轉換成機器語言,然後在電腦上執行。組合語言是一種十分接近機器語言的程式語言,如下所示:MOV AX 01MOV BX 02ADD AX BX1-1-4 高階語言-說明 高階語言(High Level Languages)是一種接近人類語言的程式語言,或稱為半英文(Half-english)的程式語言。因為電腦不能馬上看的懂,所以需要進一步翻譯,在轉換成機器語言後,其轉換的程式碼通常比直接使用機器語言撰寫的冗長,所以效率較低,但是非常適合使用者學習。目前常見的高階語言有:BASIC、C/C+、C#、Java、FORTRAN、COBOL和Pascal等。1-1-4 高階語言-編譯語言編譯程
6、式(Compilers)C/C+等程式語言屬於編譯語言,編譯程式需要檢查完整個程式檔案的程式碼,在完全沒有錯誤的情況下,才會翻譯成機器語言的程式檔案,其主要功能有兩項,如下所示:檢查程式錯誤。將程式翻譯成機器語言的程式檔案。1-1-4 高階語言-直譯語言直譯程式(Interpreters)早期BASIC語言(例如:BASICA、QuickBasic等)和目前網頁技術的腳本(Scripts)語言,例如:VBScript和JavaScript都屬於直譯語言。直譯程式在處理程式碼時,並不會輸出可執行檔案,而是直接一個指令一個動作,一列一列的執行程式碼,相對的,其執行效率低,但是非常適合在系統開發階段
7、的程式除錯。1-1-5 程式是如何執行-說明 程式在電腦實際執行的過程對於高階程式語言來說,例如:BASIC或PASCAL等並非十分重要。不過,對電腦執行程式有一定的認識,在設計程式時仍然有十分大的助益。不論使用高階或低階程式語言,其建立的程式最後都會編譯成電腦看的懂的機器語言,這些指令是CPU支援的指令集(Instruction Set)。不同CPU支援不同的指令集,換句話說,雖然高階語言有很多種,但是CPU只懂一種語言,也就是其能執行的機器語言。1-1-5 程式是如何執行-圖例1-1-5 程式是如何執行-執行程式 CPU執行機器語言程式是依序將儲存在記憶體的機器語言指令取出和執行(Fetc
8、h-and-execute)。簡單的說,CPU就是從記憶體取出指令,然後執行此指令,取出下一個指令,再執行它。CPU執行程式的方式,如下所示:電腦的主記憶體儲存機器語言的程式碼和資料。CPU從記憶體依序取出一個個機器語言指令,然後執行它,CPU並非真正了解機器語言在作什麼?這只是CPU的例行工作,依序執行機器語言指令。1-1-5 程式是如何執行-中央處理器 電腦CPU提供實際運算功能,個人電腦都是使用單晶片的IC(Integrated Circuit),其主要的功能是使用ALU(Arithmetic and Logic Unit)的邏輯電路進行運算,以便執行機器語言的指令。在CPU擁有很多組暫
9、存器(Registers),暫存器是位在CPU中的記憶體,可以暫時儲存資料或機器語言指令,例如:執行加法指令需要2個運算元,這兩個運算元資料就是儲存在暫存器。1-1-5 程式是如何執行-記憶體(說明)當我們執行程式時,作業系統可以將儲存在硬碟或軟碟的執行檔案載入電腦主記憶體(Main Memory),這就是CPU執行的機器語言指令,CPU從記憶體依序載入指令和執行。事實上,程式碼本身和使用的資料都是儲存在RAM(Random Access Memory),每一個儲存單位有數字編號稱為位址(Address)。如同大樓信箱,門牌號碼是位址,信箱內容是程式碼或資料,儲存資料佔用的記憶體空間大小,需視
10、使用的資料型態而定。1-1-5 程式是如何執行-記憶體(存取)電腦CPU中央處理器存取記憶體資料的主要步驟,如下所示:Step 1:送出讀寫的記憶體位址:當CPU讀取程式碼或資料時,需要送出欲取得的記憶體位址,例如:記憶體位址4。Step 2:讀寫記憶體儲存的資料:CPU可以從指定位址讀取記憶體內容,例如,位址4的內容是01010101,換句話說,取得資料是01010101的二進位值,每一個0或1是一個位元(Bit),8個位元稱為位元組(Byte),這是電腦記憶體的最小儲存單位。1-1-5 程式是如何執行-輸入/輸出裝置 電腦的輸入/輸出裝置(Input/Output Devices)是程式的
11、窗口,可以讓使用者輸入資料和顯示程式的執行結果。目前而言,電腦最常用的輸入裝置是鍵盤和滑鼠;輸出裝置是螢幕和列表機。1-1-5 程式是如何執行-次儲存裝置 次儲存裝置(Secondary Storage Unit)是一種能夠長時間和提供高容量儲存資料的裝置。電腦程式與資料是在載入記憶體後,才依序讓CPU來執行,不過,在此之前這些程式與資料是儲存在次儲存裝置,例如:硬碟機。當我們在Windows作業系統使用【記事本】編輯Java程式碼時,這些資料只是暫時儲存在電腦的主記憶體,因為主記憶體在關閉電源後,其儲存的資料就會消失,為了長時間儲存這些資料,我們需要將它儲存在電腦的次儲存裝置,即儲存在硬碟中
12、的程式碼檔案。1-2 Java的基礎 1-2-1 Java平台 1-2-2 Java語言的版本 1-2-3 Java程式語言的特點1-2 Java的基礎 Java(爪哇)比起傳統程式語言C/C+、PASCAL和BASIC語言來說,算是一種很新的電腦語言,它是一種類似C+語言的編譯式語言,不過並不完全相同,因為它是結合編譯和直譯優點的程式語言。1-2-1 Java平台-說明 平台(Platform)是一種結合硬體和軟體的執行環境,簡單的說,Java程式是在平台上執行,因為Java屬於一種與硬體無關和跨平台的程式語言,所以Java平台是一種軟體平台,主要是由JVM和Java API兩個元件所組成。
13、1-2-1 Java平台-JVM虛擬機器(說明)JVM(Java Virtual Machine)虛擬機器是一台軟體的虛擬電腦,Java原始程式碼並不是使用Java編譯程式(Java Compiler)編譯成其安裝實體電腦可執行的機器語言,而是JVM虛擬機器的機器語言,稱為位元組碼(Bytecode)。位元組碼是一種可以在JVM執行的程式,換句話說,電腦作業系統需要安裝有JVM,才可以使用Java直譯程式(Java Interpreter)來直譯和執行位元組碼。1-2-1 Java平台-JVM虛擬機器(圖例)Java原始程式碼(副檔名.java)在編譯成位元組碼(副檔名.class)後,即可在
14、Windows、UNIX或Machintosh的Mac OS作業系統上執行。1-2-1 Java平台-Java API Java API(Java Application Programming Interface)是軟體元件的集合,也就是在C/C+語言所謂的函數庫,提供集合物件、GUI元件、檔案處理、資料庫存取和網路等相關的類別和介面,稱為套件(Packages)。1-2-2 Java語言的版本-標準版演進版本版本日期日期說明說明1.01996/1Java Development Kit 1.0版(JDK 1.0)1.11997/2Java Development Kit 1.1版(JDK
15、1.1)1.21998/12Software Development Kit 1.2版(SDK 1.2),開始稱為Java 2平台1.32000/5平台名稱J2SE(Java 2 Platform,Stardard Edition),產品名稱是Software Development Kit 1.3版(SDK 1.3),也稱為Java 2 1.3版1.42002/2平台名稱J2SE,產品名稱是SDK 1.4,也稱為Java 2 1.4版5.02004/9平台名稱J2SE 5.0,產品名稱是J2SE Development Kit 5.0版(JDK 5.0),其開發版號為JDK 1.5.0SE
16、62006/12平台名稱Java SE 6,產品名稱是Java SE Development Kit 6(JDK 6),其開發版號為1.6.0SE 72011/07平台名稱Java SE 7,產品名稱是Java SE Development Kit 7(JDK 7),其開發版號為1.7.01-2-2 Java語言的版本-Java SE 7版 Java SE 7是Jave語言的最新版本,也是甲骨文(Oracle)併購昇陽(Sun)公司後,首次發表Java平台的最新版本。Java SE 7版包含很多全新功能、增強功能與錯誤修正,可以全方面提昇開發與執行Java程式的效能。Java SE 7除了修正
17、不少漏洞及提昇整體效能外,更提供Ruby、Python和JavaScript語言的支援,並且針對多核心環境新增全新API,和大幅提升JVM效能,和全新檔案系統API,支援非同步I/O。1-2-3 Java程式語言-特點 Java是一種簡單、功能強大、高效能和物件導向的程式語言,不只如此,Java還擁有一些傳統程式語言所沒有提供的特點,如下所示:分散式(Distributed)多執行緒(Multi-Threading)垃圾收集(Garbage Collection)例外處理(Exception Handling)1-2-3 Java程式語言-分散式分散式(Distributed)Java語言最初
18、的發展是一種網路程式語言,可以支援各種網路通訊協定,能夠建立分散式主從架構的應用程式,輕鬆存取網路上其它主機的資源。1-2-3 Java程式語言-多執行緒多執行緒(Multi-Threading)Java語言支援多執行緒,在同一程式能夠建立多個執行的小程式,稱為輕量行程(Light Weight Process),以便執行不同的工作,並且支援同步功能,能夠避免死結(Deadlock)情況的發生。1-2-3 Java程式語言-垃圾收集垃圾收集(Garbage Collection)垃圾收集是指如何處理程式不再使用的記憶體空間,Java語言擁有垃圾收集能力,程式設計者不用擔心記憶體配置的問題,因為
19、在執行Java程式時,自動會將不再使用的記憶體歸還給作業系統。1-2-3 Java程式語言-例外處理例外處理(Exception Handling)電腦程式不可能沒有小臭蟲(Bugs),一些小錯誤可能只會產生錯誤結果,但是有一些小錯誤可能導致嚴重的系統當機問題。Java語言的例外處理可以讓程式更加強壯(Robust),這算程式執行時遇到不尋常的情況,也不會造成程式崩潰(Crashing)或整個系統當機。1-3 Java語言的開發環境說明 程式語言的開發環境(Development Environment)是一組工具程式用來建立、編譯和維護程式語言建立的應用程式。一般來說,我們可以使用兩種Jav
20、a開發環境來建立Java應用程式。1-3 Java語言的開發環境終端機終端機模式的開發環境 對於傳統MS-DOS或UNIX、Linux系統的使用者,或稱為終端機(Terminals)模式,程式執行環境輸入資料和輸出資料都是命令列模式(Command-line Interface),即文字模式的鍵盤輸入或單純文字內容的輸出。在終端機模式的開發環境只需安裝Java開發工具Java Development Kit(JDK)和設定好環境參數,然後配合vi、edit或記事本等程式碼編輯工具,就可以開發Java應用程式。1-3 Java語言的開發環境整合開發環境整合開發環境 對於高階程式語言來說,大多擁有
21、整合開發環境(Integrated Development Environment,簡稱IDE),可以在同一個應用程式編輯、編譯、執行和除錯特定語言的應用程式。目前巿面上有相當多套支援Windows作業系統的Java整合開發環境,在搭配JDK後,就可以在同一工具軟體編輯、編譯和除錯Java程式。常見Java整合開發環境,如下所示:Eclipse。NetBeans IDE。Borland JBuilder。JCreator。1-4 建立Java語言的開發環境 1-4-1 安裝與設定JDK 1-4-2 安裝與啟動Eclipse IDE 1-4-1 安裝與設定JDK-說明 一般來說,有些整合開發環境
22、在安裝時就會一併安裝JDK,例如:JBuilder,不過,大部分整合開發環境需要自行安裝JDK,本書使用的版本是JDK 7(Java SE Development Kit 7),其下載網址為:http:/ 安裝與設定JDK-移除舊版JDK移除舊版JDK 如果在Windows電腦已經安裝舊版JDK,基於安全性考量,建議移除舊版JDK,如下圖所示:1-4-1 安裝與設定JDK-安裝JDK 7 安裝JDK 7 JDK 7更新版本並不是使用.後的次版號來表示,而是改為更新Update來標示,以本書為例是使用JDK 7 Update 10,其下載Windows版JDK的檔名為【jdk-7u10-wind
23、ows-i586.exe】;64位元是【jdk-7u10-windows-x64.exe】後,我們只需執行此檔案就可以安裝JDK 7。1-4-1 安裝與設定JDK-設定JDK設定JDK 設定JDK就是在Windows作業系統新增環境變數Path的搜尋路徑C:Program FilesJavajdk1.7.0_10bin,其中C:Program FilesJavajdk1.7.0_10是JDK安裝路徑。1-4-2 安裝與啟動Eclipse IDE-說明 Eclipse IDE原為IBM公司發起的開發專案,其目的是開發一套免費且開放原始碼的整合開發環境,支援多種程式語言的應用程式開發,例如:Jav
24、a、JavaScript和C/C+等語言。Eclipse IDE需要安裝JRE才能執行,其下載網址為:http:/www.eclipse.org/downloads/因為我們是安裝Java SE,請選【Eclipse IDE for Java Developers】後的下載連結【Windows 32 Bit】,即可下載最新版的Eclipse IDE。1-4-2 安裝與啟動Eclipse IDE-安裝 以本書為例是使用Eclipse JUNO 4.2版SR1,64位元的下載檔名為ZIP格式壓縮檔【eclipse-java-juno-SR1-win32-x86_64.zip】,因為Eclipse
25、IDE並沒有安裝程式,我們只需解壓縮至指定資料夾,例如:C:Java_IDEeclipse,和建立捷徑即可完成安裝,如右圖所示:1-4-2 安裝與啟動Eclipse IDE-啟動 在安裝Eclipse IDE和建立桌面捷徑後,我們就可以啟動Eclipse IDE,請按二下上述建立的桌面捷徑來啟動Eclipse IDE,稍等一下,可以看到Workspace Lanucher選取工作空間對話方塊。選擇工作空間(Workspace,這是包含專案和設定檔案的資料夾),請按【Browse】鈕選擇本書預設的範例目錄C:JavaExCh02,按【OK】鈕,稍等一下,可以看到Eclipse IDE整合開發環境,顯示Welcome歡迎頁面。1-4-2 安裝與啟動Eclipse IDE-圖例