Skip to content

Commit 8e8f304

Browse files
author
Justin Lin
committed
fomatting
1 parent cf9c93e commit 8e8f304

File tree

4 files changed

+37
-37
lines changed

4 files changed

+37
-37
lines changed

docs/CH01.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ Java 不再只是單純的程式語言加上 API 文件庫的組成,更提供
4646

4747
Java 本身是個程式語言,所以您可以從程式語言本身的特性來討論它,Java 擁有不同領域的平台,所以您可以從應用領域與平台的特性來探討它,更重要的是 Java 擁有許多活躍的社群、資源與開放原始碼(Open source)專案,這更是在討論 Java 時值得一提的特性。
4848

49-
## 1.2.1 語言特性 ##
49+
## 1.2.1 語言特性
5050

5151
作為一個程式語言,Java 擁有許多重要的特性:簡單的(Simple)、物件導向的(Object-oriented)、網路的(Network-savvy)、解譯的(Interpreted)、堅固的(Robust)、安全的(Secure)、可攜的(Portable)、高效能的(High-performance)。以下我針對這幾個重要的特性來加以說明。
5252

@@ -101,7 +101,7 @@ Java 本身是個程式語言,所以您可以從程式語言本身的特性來
101101

102102
不過在歷經數個版本的變更,Java 一直嘗試提高其執行的效能,像是使 用Java HotSpot 技術,在第一次載入 Java 位元碼時,JIT 會以解譯模式開始載入,分析並嘗試以最佳化編譯為目標平台的原始機器碼。每一次的版本更新,Java皆嘗試在效能上作出改進。
103103

104-
## 1.2.2 應用平台 ##
104+
## 1.2.2 應用平台
105105

106106
Java 至今日主要發展出三個領域的應用平台:Java Platform, Standard Edition (Java SE)、Java Platform, Enterprise Edition (Java EE) 與 Java Platform, Micro Edition (Java ME)。
107107

@@ -133,7 +133,7 @@ Java 至今日主要發展出三個領域的應用平台:Java Platform, Standa
133133

134134
> **良葛格的話匣子** Java SE 6?JDK6?JRE6?您已經搞不清楚這些名稱了嗎?這邊再做個整理。Java SE 是指平台名稱,全名 Java Platform, Standard Edition 6。JDK6 是基於平台的開發程式發行版本,全名 Java SE Development Kit 6。JRE6 則是基於平台的執行環境發行版,全名 Java SE Runtime Environment 6。
135135
136-
## 1.2.3 活躍的社群與豐富的資源 ##
136+
## 1.2.3 活躍的社群與豐富的資源
137137

138138
Java 發展至今日獲得廣大開發者的支援,有一個不得不提的特性,即 Java 所擁有的各種豐富資源與各式活躍的社群,來自各個領域的開發人員與大師們各自對 Java 作出了貢獻。
139139

docs/CH02.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Java 初學者最常遇到的狀況是 … 在高高興興的下載了所謂的
1414

1515
要使用 Java 開發程式的第一步,就是安裝 JDK(Java SE Development Kit),這邊以 Java SE 6 Development Kit 安裝作為範例,以實作的方式一步步帶您瞭解 JDK。
1616

17-
## 2.1.1 下載 JDK ##
17+
## 2.1.1 下載 JDK
1818

1919
安裝 JDK 的第一步是先下載安裝檔案,這邊要下載的是 Sun 公司的 Java SE 6 Development Kit,下載的網址是:
2020

@@ -53,7 +53,7 @@ Java 初學者最常遇到的狀況是 … 在高高興興的下載了所謂的
5353

5454
建議選擇下載離線安裝檔案,在安裝完畢後可以備份在電腦中,日後如果需要重新安裝的話就很方便。
5555

56-
## 2.1.2 安裝JDK ##
56+
## 2.1.2 安裝JDK
5757

5858
這邊假設您下載後的 JDK 安裝檔案名稱是 jdk-6-windows-i586.exe,按兩下這個檔案可以開始程式的安裝,開始的第一步是同意使用條款,再來則是開始安裝 JDK。
5959

@@ -71,7 +71,7 @@ Java 初學者最常遇到的狀況是 … 在高高興興的下載了所謂的
7171

7272
同樣的請留意圖 2.4 下方的「Install to」,瞭解 JRE 的安裝目的地,預設是「C:\Program Files\Java\jre1.6.0\」,按下「Next」按鈕之後,會詢問哪些瀏覽器要使用 Java Plug-In?這可以讓您的瀏覽器可以執行 Java Applet,選擇要支援 Java Plug-In 的瀏覽器之後,按下「Next」鈕可以開始安裝公用 JRE。
7373

74-
## 2.1.3 瞭解 JDK ##
74+
## 2.1.3 瞭解 JDK
7575

7676
接著來瞭解一下您安裝的東西有哪些,這邊假設您的 JDK 與公用 JRE 各安裝至「C:\Program Files\Java\jdk1.6.0\」及「C:\Program Files\Java\jre1.6.0\」。
7777

@@ -124,7 +124,7 @@ server 與 client 選項的差別在於所使用的 VM 不同,執行 Java 程
124124

125125
對於習慣圖形化介面操作的初學者而言,在文字模式下執行程式是一件陌生的事,也因此不瞭解 Path 路徑設定的方法與作用,而 Java 執行的平台也有自己的一套路徑規則來找尋撰寫好的 Java 類別,也就是所謂的 Classpath 設定,這個小節中將告訴您如何進行這些相關的設定。
126126

127-
## 2.2.1 設定 Path ##
127+
## 2.2.1 設定 Path
128128

129129
在安裝好 JDK 程式之後,在JDK安裝目錄(假設是 C:\Program Files\Java\jdk1.6.0)下的「bin」目錄,會提供一些開發 Java 程式中必備的工具程式,對於 Java 的初學者我所給的建議是從文字模式(在 Windows 2000/XP 下稱之為命令提示字元)下來操作這些工具程式,您可以在 Windows 2000/XP 的「開始」選單中選擇「執行」,鍵入「cmd」指令來開啟文字模式。
130130

@@ -164,7 +164,7 @@ server 與 client 選項的差別在於所使用的 VM 不同,執行 Java 程
164164

165165
簡單的說,作業系統會嘗試在您指定的 Path 變數中尋找指定的工具程式,當您鍵入 javac 指令時,由於 Path 變數中有設定 JDK 的「bin」目錄之路徑,作業系統就可以根據這個訊息來找到 javac、java 等工具程式。
166166

167-
## 2.2.2 設定 Classpath ##
167+
## 2.2.2 設定 Classpath
168168

169169
Java 執行環境本身就是一個平台,執行於這個平台上的程式是已編譯完成的 Java 程式(之後會介紹到 Java 程式編譯完成之後,會以 .class 檔案存在),如果將 Java 執行環境比喻為作業系統的話,如果設定 Path 變數是為了讓作業系統找到指定的工具程式(以 Windows 來說的話就是找到 .exe 檔案),則設定 Classpath 的目的就是為了讓Java執行環境找到指定的 Java 程式(也就是.class檔案)。
170170

@@ -189,7 +189,7 @@ Java 執行環境本身就是一個平台,執行於這個平台上的程式是
189189

190190
完成 JDK 相關環境設定之後,無論如何就先寫個簡單的 Java 程式,以測試一下環境設定是否正確,順便增強一些學習的信心,以下要介紹的第一個 Java 程式是會顯示 "嗨!我的第一個 Java 程式!" 這段訊息的簡單程式。
191191

192-
## 2.3.1 撰寫、編譯 Java 程式 ##
192+
## 2.3.1 撰寫、編譯 Java 程式
193193

194194
在正式撰寫程式之前,請先確定您可以看的到檔案的副檔名,在 Windows 2000/XP 下預設是不顯示檔案的副檔名,這會造成您重新命名檔案時的困擾,如果您目前在「檔案總管」下無法看到檔案的副檔名,請先執行工具列上的「工具/資料夾選項」並切換至「檢視」頁面,取消「隱藏已知檔案類型的副檔名」之選取。
195195

@@ -249,7 +249,7 @@ Java 執行環境本身就是一個平台,執行於這個平台上的程式是
249249

250250
Path 設定有誤或沒有在 Path 中加入 JDK 的「bin」目錄,請參考前一節的內容。
251251

252-
## 2.3.2 執行 Java 程式 ##
252+
## 2.3.2 執行 Java 程式
253253

254254
在順利編譯出 .class 的檔案之後,可以使用 java 工具程式來執行它,執行時必須指定類別名稱,就以上的例子來說,也就是指定 HelloJava.class 這個檔案的主檔名,指令執行方式如下:
255255

docs/CH03.md

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
先來解釋一下第 2 章中您所完成的「第一個 Java 程式」,如果您學過 C 語言,對於 3.1.2「給 C 使用者的第一個 Java 程式」可能會覺得比較親切,因為介紹了類似 C 語言中 printf() 函式的功能,另外別忘了在寫程式時加入一些註解文字,這在閱讀程式碼的時候會很有幫助。
1414

15-
## 3.1.1 解釋第一個 Java 程式 #
15+
## 3.1.1 解釋第一個 Java 程式
1616

1717
要對新手解釋第一個 Java 程式事實上並不簡單,因為一個最簡單的 Java 程式就會涉及檔案管理、類別 (Class)、主程式、命令列引數(Command line argument)等觀念,我很想對您說,反正一個基本的 Java 程式就這麼寫就對了,因為要一下子接受這麼多觀念並不容易。總之,如果現階段您無法瞭解,就請當它是 Java 語言的文法規範。
1818

@@ -194,7 +194,7 @@ public class ThirdJavaForC {
194194

195195
從互動中學習,是我最喜愛的學習方式,我建議學習 Java 的第一步,要先能看到您的程式執行結果,要可以對程式輸入一些資料,作一些傻瓜式的互動。
196196

197-
## 3.2.1 使用 Scanner 取得輸入 ##
197+
## 3.2.1 使用 Scanner 取得輸入
198198

199199
在文字模式下要輸入資料至程式中時,您可以使用標準輸入串流物件 System.in,然而實際上很少直接使用它,因為 System.in 物件所提供的 read() 方法,是從輸入串流取得一個位元組的資料,並傳回該位元組的整數值,但通常您要取得的使用者輸入會是一個字串,或是一組數字,所以 System.in 物件的 read() 方法一次只讀入一個位元組資料的方式並不適用。
200200

@@ -300,7 +300,7 @@ readLine() 方法會傳回使用者在按下 Enter 鍵之前的所有字元輸
300300
>
301301
> 但什麼該闕疑?什麼觀念又該先徹底理解?在這本書中我會根據經驗告訴您,在告訴您闕疑的同時,也會告訴您這些觀念實際上在哪個章節(或網路資料上)會詳細說明。
302302
303-
## 3.2.3 標準輸入輸出串流 ##
303+
## 3.2.3 標準輸入輸出串流
304304

305305
在之前的範例程式中,您使用了 System 類別中的靜態物件 out,它提供標準輸出串流(Stream)輸出,會在程式開始執行之後自動開啟並準備接受指定的資料,它通常對應至顯示輸出(文字模式、終端機輸出),您可以將輸出重新導向至一個檔案,只要執行程式時使用'>'將輸出結果導向至指定的檔案,例如:
306306

@@ -436,7 +436,7 @@ public class TigerNumberDemo {
436436

437437
電腦的原文是「Computer」,電腦的基本作用其實就是運算,要運算就要給它資料,要告訴電腦您給了它哪些資料?是整數還是小數?是文字還是字元?這就是程式語言術語中所謂的「指定變數與資料型態」!在給定了資料之後,接著您就可以叫電腦開始進行各種算術、邏輯、比較、遞增、遞減等等的運算。
438438

439-
## 3.3.1 資料型態 ##
439+
## 3.3.1 資料型態
440440

441441
程式在執行的過程中,需要運算許多的資訊,也需要儲存許多的資訊,這些資訊可能是由使用者輸入、從檔案中取得,甚至是由網路上得到,在程式運行的過程中,這些資訊透過「變數」(Variable)加以儲存,以便程式隨時取用。
442442

@@ -496,7 +496,7 @@ public class DataRange {
496496

497497
其中浮點數所取得是正數的最大與最小範圍,加上負號即為負數可表示的最大與最小範圍。
498498

499-
## 3.3.2 變數、常數 ##
499+
## 3.3.2 變數、常數
500500

501501

502502
資料是儲存在記憶體中的一塊空間中,為了取得資料,您必須知道這塊記憶體空間的位置,然而若使用記憶體位址編號的話相當的不方便,所以使用一個明確的名稱,變數(Variable)是一個資料儲存空間的表示,您將資料指定給變數,就是將資料儲存至對應的記憶體空間,您呼叫變數時,就是將對應的記憶體空間的資料取出供您使用。
@@ -567,7 +567,7 @@ public class VariableDemo {
567567

568568
使用 "final" 來限定的變數,目的通常就是不希望其它的程式碼來變動它的值,例如用於迴圈計數次數的指定(迴圈之後就會學到),或是像圓周率 PI 常數的指定。
569569

570-
## 3.3.3 算術運算 ##
570+
## 3.3.3 算術運算
571571

572572
程式的目的簡單的說就是運算,除了運算還是運算,所以加減乘除這類的操作是少不得的,在 Java 中提供運算功能的就是運算子 (Operator),例如與算術相關的有加(+)、減(-)、乘(*)、除(/)這類的運算子,另外還有一個也很常用的餘除運算子(%),這類以數學運算為主的運算子稱之為「算術運算子」(Arithmetic operator)
573573

@@ -622,7 +622,7 @@ public class VariableDemo {
622622

623623
count = (count + 1) % 360;
624624

625-
## 3.3.4 比較、條件運算 ##
625+
## 3.3.4 比較、條件運算
626626

627627
數學上有比較的運算,像是大於、等於、小於等運算,Java 中也提供了這些運算子,這些運算子稱之為「比較運算子」(Comparison operator),它們有大於(>)、不小於(>=)、小於(<)、不大於(<=)、等於(==)以及不等於(!=)。
628628

@@ -705,7 +705,7 @@ public class OddDecider {
705705
請輸入數字: 87
706706
是否為奇數? 是
707707

708-
## 3.3.5 邏輯、位元運算 ##
708+
## 3.3.5 邏輯、位元運算
709709

710710
大於、小於的運算會了,但如果想要同時進行兩個以上的條件判斷呢?例如分數大於 80 「且」小於 90 的判斷。在邏輯上有 所謂的「且」(And)、「或」(Or)與「反」(Inverse),在 Java 中也提供這幾個基本邏輯運算所需的「邏輯運算子」(Logical operator),分別為「且」(&&)、「或」(||)及「反相」(!)三個運算子。
711711
來看看範例 3.17 會輸出什麼?
@@ -888,7 +888,7 @@ public class ShiftOperator {
888888

889889
> **良葛格的話匣子** 位元運算對於沒有學過數位邏輯的初學者來說,會比較難一些,基本上除了像是資訊工程、電機工程相關領域的開發人員會比較常使用位元運算之外,大部份的開發人員可能不常使用位元運算,如果您的專長領域比較不需要使用位元運算,則基本上先瞭解有位元運算這個東西就可以了,不必在這個部份太過鑽研。
890890
891-
## 3.3.6 遞增、遞減運算 ##
891+
## 3.3.6 遞增、遞減運算
892892

893893
遞增(Increment)、遞減(Decrement)與指定(Assignment)運算子,老實說常成為初學者的一個惡夢,因為有些程式中若寫得精簡,這幾個運算子容易讓初學者搞不清楚程式的真正運算結果是什麼;事實上,使用這幾種運算子的目的除了使讓程式看來比較簡潔之外,還可以稍微增加一些程式執行的效率。
894894
在程式中對變數遞增1或遞減1是很常見的運算,例如:
@@ -901,7 +901,7 @@ public class ShiftOperator {
901901

902902
這段程式會分別顯示出 1 與 0 兩個數,您可以使用遞增、遞減運算子來撰寫程式:
903903

904-
#### **範例3.22 IncrementDecrement.java**
904+
#### **範例 3.22 IncrementDecrement.java**
905905
```java
906906
public class IncrementDecrement {
907907
public static void main(String[] args) {
@@ -919,7 +919,7 @@ public class IncrementDecrement {
919919

920920
您可以將遞增或遞減運算子撰寫在變數之前或變數之後,但其實兩種寫法是有差別的,將遞增(遞減)運算子撰寫在變數前時,表示先將變數的值加(減)1,然後再傳回變數的值,將遞增(遞減)運算子撰寫在變數之後,表示先傳回變數值,然後再對變數加(減)1,例如:
921921

922-
#### **範例3.23 IncrementDecrement2.java**
922+
#### **範例 3.23 IncrementDecrement2.java**
923923
```java
924924
public class IncrementDecrement2 {
925925
public static void main(String[] args) {
@@ -936,7 +936,7 @@ public class IncrementDecrement2 {
936936

937937
在這段程式中,number 的值會前後分別顯示為 1 與 0,再看看範例 3.24。
938938

939-
#### **範例3.24 IncrementDecrement3.java**
939+
#### **範例 3.24 IncrementDecrement3.java**
940940
```java
941941
public class IncrementDecrement3 {
942942
public static void main(String[] args) {
@@ -955,7 +955,7 @@ public class IncrementDecrement3 {
955955

956956
接下來看「指定運算子」(Assignment operator),到目前為止您只看過一個指定運算子,也就是 '=' 這個運算子,事實上指定運算子還有以下的幾個:
957957

958-
#### **表3.3 指定運算子**
958+
#### **表 3.3 指定運算子**
959959

960960
| 指定運算子| 範例 | 結果
961961
| :-------- | :----- | :------
@@ -1024,7 +1024,7 @@ public class IncrementDecrement3 {
10241024

10251025
範例 3.25 是個簡單的程式,使用if條件式來判斷使用者的輸入是奇數還是偶數。
10261026

1027-
#### **範例3.25 OddDecider3.java**
1027+
#### **範例 3.25 OddDecider3.java**
10281028
```java
10291029
import java.util.Scanner;
10301030

@@ -1158,7 +1158,7 @@ switch 只能比較數值或字元,不過別以為這樣它就比 if 來得沒
11581158

11591159
來看看範例 3.26 的成績等級比對如何使用 switch 來改寫。
11601160

1161-
#### **範例3.27 ScoreLevel2.java**
1161+
#### **範例 3.27 ScoreLevel2.java**
11621162
```java
11631163
import java.util.Scanner;
11641164

@@ -1283,7 +1283,7 @@ public class NineTable {
12831283

12841284
for 括號中的每個陳述區塊是以分號 ';' 作區隔,而在一個陳述區塊中若想寫兩個以上的陳述句,則使用逗號 ',' 作區隔,有興趣的話,看看範例 3.30 中九九乘法表的寫法,它只使用了一個 for 迴圈就可以完成九九乘法表的列印,執行結果與範例 3.29 是一樣的。
12851285

1286-
#### **範例3.30 NineTable2.java**
1286+
#### **範例 3.30 NineTable2.java**
12871287
```java
12881288
public class NineTable2 {
12891289
public static void main(String[] args) {
@@ -1312,7 +1312,7 @@ Java 提供 while 迴圈式,它根據您所指定的條件式來判斷是否
13121312

13131313
一個計算輸入成績平均的程式如範例 3.31 所示。
13141314

1315-
#### **範例3.31 ScoreAverage.java**
1315+
#### **範例 3.31 ScoreAverage.java**
13161316
```java
13171317
import java.util.Scanner;
13181318

@@ -1371,7 +1371,7 @@ while 迴圈有時稱之為「前測式迴圈」,因為它在迴圈執行前
13711371
13721372
注意 while 後面是以分號 ';'作為結束,這個很常被忽略;由於 do while 會先執行迴圈,所以它通常用於進行一些初始化或介面溝通的動作,例如範例 3.32 所示。
13731373

1374-
#### **範例3.32 OddDecider4.java**
1374+
#### **範例 3.32 OddDecider4.java**
13751375
```java
13761376
import java.util.Scanner;
13771377

@@ -1425,7 +1425,7 @@ continue 的作用與 break 類似,主要使用於迴圈,所不同的是 bre
14251425

14261426
break 與 continue 還可以配合標籤使用,例如本來 break 只會離開 for 迴圈,設定標籤與區塊,則可以離開整個區塊,範例 3.33 舉個簡單的示範。
14271427

1428-
#### **範例3.33 BreakTest.java**
1428+
#### **範例 3.33 BreakTest.java**
14291429
```java
14301430
public class BreakTest {
14311431
public static void main(String[] args) {

0 commit comments

Comments
 (0)