Java SE 學習札記
使用教材 : Java 7 教學手冊 第五版 / 洪維恩 著
註:學習時使用JAVA 11版本進行,並非使用老師教學的JAVA 7
第一章 :認識Java
第一章摘要:
1. Java 於 1995 誕生,由美國加州 Sun Microsystems 所推出,是一種能夠跨平臺使用的程式語言。
2. Java 語言前身為Oak(橡樹),相傳是Java 設計者 James Gosling 在制定Oak的樹狀結構時,抬頭看到一顆茂盛的橡樹,即命名之,後來註冊時Oak已經被其他公司註冊過,遂以工程師手上正在喝的咖啡Java命名。
3. JDK 版本 可分為 標準版(Java SE / 用戶端部分) ,微型版(Java ME / 使用在崁入式系統如: 手機上),
企業版(Java EE / 伺服器端)。
4. Java 程式必須先經過 編譯器(compiler) 後,轉成與平臺無關的機器碼,稱之為"位元組碼"(bytecode)在 透過 直譯器(interpreter)方式執行。
5.bytecode 最大好處 : 可跨越平臺來執行,讓 "撰寫一次,到處運行" (write once , run anywhere)的夢 想成真。
6.Java 程式可分為 (1)Java application 與 (2)Java applet 。 Java application 是指可以在平臺上獨立執行 的,而 Java applet 是要搭配html檔並使用瀏覽器執行。
第一章 習題 :
A1. 簡單描述 Java 發展過程:
Q1: 誕生於1995/5/23,是基於C++所開發的物件導向程式語言,最初是試著修改C++功能,但一直無法克服編譯器問題,遂自行開發當時稱為Oak的程式語言(現為java),1994年時搭上www風潮,成功 在網路應用上一炮而紅,2004年被Oracle收購。
A2. 請問JAVA SE,JAVA ME,JAVA EE,怎麼分別:
Q2: SE : 主要用於用戶端,是學習JAVA的第一步驟
ME : 使用於崁入式裝置居多,如:手機,家電元件等等。
EE : 伺服器應用與分散式網路應用。
A3. 何謂位元組碼,並指出它的好處。
Q3: 是Java 在進行編譯器後的機器碼,再透過JVM(Java Virtual Machine)後運行執行。
可跨越平臺執行,實現了程式碼一次撰寫,到處編譯的夢想。
A4. 何謂JVM(Java Virtual Machine) :
Q4 :任何一種可執行Java的軟體,均可看成JVM,是執行Java 機器碼(同位元碼)的重要工具,沒有 JVM,Java就沒辦法實現撰寫一次,到處運行。
第二章: 簡單的Java 程式
第二章摘要 :
1.在Java裡,如果一個類別宣告為public,則它的檔案名稱必須與類別名稱相同才能順利編譯。
例 : public class Chasel{},Chasel宣告為public ,檔案名稱必須為:Chasel.java
2.main()在Java裡是一個相當特殊的函數,它一定要宣告成public,使得在類別的其他地方皆可呼叫到 它,且main()沒有傳回值,所以前面要加上void關鍵字。
3.System.out 是指標準輸出,其後所接續的文字println是由print + line 所組成的,意義是將後面括號內的內容列印於標準輸出設備,即螢幕上。
4.由於Java程式是由類別所組成,所以在完整的程式內必須要有一個類別。
5.Java 的變數名稱可為英文、數字或底線,但名稱中不可以有空白字元,不能是Java的關鍵字,且第一 個字元不能是數字,此外,Java變數有區分大小寫。
6.Java語言 註釋 使用 : // 單行註釋 , /* */ 多行註釋 ,/** */ 文檔註譯。
7.提高可讀性方法 : (1)程式中添加註譯, (2)為變數取個有意義的名稱 ,(3)保持每一行只有敘述,
(4)適當的空行, (5)將程式敘述縮排。
第二章 習題:
2-1.了解下列程式碼,加上註解並執行它。
public class hw2_1 { //定義public 類別 hw2_1
public static void main(String[]args){
int n = 8; //宣告 一個整數變數名為n,並賦值為8
System.out.println(n + " + " + n + " = " + (n+n)); // 輸出為 8 + 8 = 16
System.out.println(n + " * 5 = " + (n*5)); //輸出為 8 * 5 = 40
}
}
2-1-1.
System.out.println(n + " + " + n + " = " + n+n); //會變成輸出 8 + 8 = 88 ,要注意括號與運算優先級
System.out.println(n + " * 5 = " + (n*)); //會運行失敗
2-2.main() 函數 前的三個修飾子,請寫出3個修飾子並詳細敘述他們功能
Q2-2 : public (讓main可以被其他地方呼叫) , static(宣告成類別函數,使得程式一啟動,就可以自動執行main) ,void (沒有傳回值)。