實驗一 Java開發環境的熟悉(Linux + Eclipse)
實驗內容
1.使用JDK編譯、運行簡單的Java程序;
2.使用Eclipse 編輯、編譯、運行、調試Java程序。
實驗要求
1.沒有Linux基礎的同學建議先學習《Linux基礎入門(新版)》《Vim編輯器》 課程;
2.完成實驗、撰寫實驗報告,實驗報告模板見QQ群,注意實驗報告重點是運行結果,遇到的問題(工具查找,安裝,使用,程序的編輯,調試,運行等)、解決辦法(空洞的方法如“查網絡”、“問同學”、“看書”等一律得0分)以及分析(從中可以得到什么啟示,有什么收獲,教訓等);
3.實驗報告中統計自己的PSP(Personal Software Process)時間:
步驟 | 耗時 | 百分比 |
---|---|---|
需求分析 | ||
設計 | ||
代碼實現 | ||
測試 | ||
分析總結 |
4. 嚴禁抄襲。
實驗知識點
1. JVM、JRE、JDK的安裝位置與區別;
2. 命令行運行javac;java;javac -cp; java -cp;
3. PATH,CLASSPATH,SOURCEPATH的設定方法與應用;
4. 包管理:package;import;javac -d ;
5. Eclipse(Netbeans)管理Java項目,調試:斷點、單步執行等;
6. Java基礎語法:類型與類型轉換;變量;運算符;流程控制等;
7. JDK幫助文檔的使用。
實驗步驟
(一)命令行下Java程序開發
-
首先雙擊桌面上的
Xface終端
圖標,如下圖所示:
-
打開終端(類似Windows下的cmd),之后會自動運行shell程序,如下圖所示:
-
輸入
cd Code
命令進入Code(注意C要大寫)目錄,如下圖所示:
-
輸入
mkdir 20135100
命令建立實驗目錄,注意目錄名一定是自己的學號(學號要體現在實驗報告截圖中),可以使用ls
命令或dir
命令查看建立的目錄情況。如下圖所示:
-
輸入
cd 20135100
命令進入實驗目錄,再輸入類似mkdir exp1
建立第一個實驗目錄,然后輸入cd exp1
進入實驗一目錄,可以輸入pwd
命令查看當前工作路徑,如下圖所示:
-
輸入
gedit Hello.java
(注意把代碼保存到exp1目錄中)或vim Hello.java
(建議大家花點時間學習一下Vim)編輯Hello.java,並輸入以下代碼:
1 package ljp;
2 import java.util.Scanner;
3 public class Hello{
4 public static void main(String[] args){
5 System.out.println("Input your first name, please:");
6 Scanner s = new Scanner(System.in);
7 String name = s.next();
8 System.out.println("Hello " + name + " !");
9 }
10 }
注意代碼的第一行,這會影響到我們使用javac編譯代碼的方式。
注意代碼第二行,我們使用到Java類庫中的類時,要用import導入相關的類(你可以暫時理解為C語言中include的功能),導入路徑可以查看JDK幫助文檔,比如我們使用到了Scanner類,路徑見下圖中紅框:
7.輸入javac -d . Hello.java
命令編譯代碼,輸入java ljp.Hello
命令運行
程序。結果如下圖所示:
注意:代碼中有package時,使用javac編譯代碼時一定要加-d參數,運行代碼時一定要加包名前綴。
(二)Eclipse下Java程序開發、調試
-
在命令行中輸入
eclipse
命令並回車或單擊桌面上的Eclipse EE圖標打開Eclipse,如下圖所示:
-
在Eclipse中單擊
File->New-> Java Project
新建Java項目,如下圖所示:
-
輸入項目名稱
HelloJDB
(你可以自己起名),並單擊Finish
按鈕完成新建項目,如下圖所示:
-
在Eclipse中單擊
File->New->Class
新建Java類,如下圖所示:
5.根據Java代碼規范輸入包名ljp
(小寫,可以自定義),類名HelloJDB
(單詞首字母大寫),並勾選上自動產生main函數選項,最后單擊Finish
按鈕,如下圖所示:
6.輸入如下代碼:
1 package ljp;
2 public class HelloJDB {
3 public static void main(String[] args) {
4 int i = 5;
5 int j = 6;
6 int sum = add(i, j);
7 System.out.println(sum);
8
9 sum = 0;
10 for(i=0; i< 100; i++)
11 sum += i;
12
13 System.out.println(sum);
14 }
15
16 public static int add(int augend, int addend){
17 int sum = augend + addend;
18 return sum;
19 }
20}
7.單擊運行按鈕(或使用Ctrl+F11
快捷鍵),就可以在控制台(Console)中看到運行結果。如下圖所示:
8.下面我們練習調試程序,首先我們通過單擊Window->Open Perspective->Debug
打開調試視圖,如下圖所示:
9.調試程序首先要會設置斷點和單步運行。設置斷點比較簡單,如下圖所示:
然后單擊調試按鈕(或使用F11
快捷鍵)開始調試Java程序,我們可以看到程序停留在了第4行,如下圖所示:
注意,此時第4行代碼並沒有執行,我們可以把鼠標放到變量名上來查看變量的值,此時i的值並不是5,我們通過單步運行讓程序運行到第5行,單步運行有兩種:Step Into(快捷捷F5)和Step Over(快捷捷F5),這兩種單步運行功能在運行語句時沒有區別,在執行函數調用語句時,Step Into
會跳入函數實現,Step Over
會直接執行完函數,實際使用中我們優先使用Step Over
,只有函數執行出錯了,說明程序問題在被調用函數中,這時再回來通過Step Into
進入函數進行調試。我們單擊一下Step Over
圖標(或F6
),程序停在了第5行,這時查看變量i的值,會看到i等於5。如下圖所示:
10.單步執行效率比較慢,如果我們感覺到第6行到第10行的代碼沒有問題了,想讓程序直接運行到第11行,怎么辦?首先我們要在第11行設置斷點,然后單擊Resume
圖標(快捷鍵F8
),程序就運行到了第11行,如下圖所示:
11.單步執行效率比較慢還導致另外一個問題,比如一個大循環中間出了問題怎么辦?這時可以通過條件斷點解決問題。調試循環代碼時,會有一個值我們特別關注,這時在Variable標簽中查看變量的值,比如我們此時比較關注sum
,每次單步執行都可以看到sum
的變化情況了,
設置條件斷點,我們在第11行左邊單擊鼠標右鍵,選擇Breakpoint Properties...
如下圖所示:
我們設置條件“i==50”,如下圖所示:
按一下F8,我們可以查看i的是50了。如下圖所示:
掌握這些調試的基本技巧可以解決大家平時遇到的大部分問題,其他調試方法可以參見參考資料。
(三)練習(通過命令行和Eclipse兩種方式實現,自己的學號后兩位與題目總數取余的結果再加上1就是自己要完成的題號,在Eclipse下練習調試程序)
1. 實現凱撒密碼並進行安全加固,並進行測試(正常情況,異常情況,邊界情況)。
2. 實現簡單四則運算(能支持分數,加減乘除,支持括號),並進行測試(正常情況,異常情況,邊界情況)。
3. 實現Fibonacci數列功能,並進行測試(正常情況,異常情況,邊界情況)。
4. 實現學生成績管理功能(增刪改,排序,查找),並進行測試(正常情況,異常情況,邊界情況)。
5. 實現求正整數1-N之間所有質數的功能,並進行測試(正常情況,異常情況,邊界情況)。
6, 實現求排列數P(n,m)的功能,m,n從命令行輸入,並進行測試(正常情況,異常情況,邊界情況)。
7, 實現求兩個數的最大公約數和最小公倍數的功能,數從命令行輸入,並進行測試(正常情況,異常情況,邊界情況)。
8. 產生一個隨機數,讓用戶猜測,猜錯了告訴用戶是大了還是小了。 並進行測試(正常情況,異常情況,邊界情況)
9. 判斷一個數是不是回文數,數從命令行輸入,並進行測試(正常情況,異常情況,邊界情況)。
參考資料
歡迎關注“rocedu”微信公眾號(手機上長按二維碼)
做中教,做中學,實踐中共同進步!
-
版權聲明:自由轉載-非商用-非衍生-保持署名| Creative Commons BY-NC-ND 3.0