實驗一 Java開發環境的熟悉


實驗一 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程序開發

  1. 首先雙擊桌面上的Xface終端圖標,如下圖所示:
    單擊Xface終端圖標

  2. 打開終端(類似Windows下的cmd),之后會自動運行shell程序,如下圖所示:
    打開Xface終端

  3. 輸入cd Code命令進入Code(注意C要大寫)目錄,如下圖所示:
    進入Code目錄

  4. 輸入mkdir 20135100 命令建立實驗目錄,注意目錄名一定是自己的學號(學號要體現在實驗報告截圖中),可以使用ls命令或dir命令查看建立的目錄情況。如下圖所示:
    建立實驗目錄

  5. 輸入cd 20135100命令進入實驗目錄,再輸入類似mkdir exp1建立第一個實驗目錄,然后輸入cd exp1進入實驗一目錄,可以輸入pwd命令查看當前工作路徑,如下圖所示:
    建立實驗目錄

  6. 輸入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程序開發、調試

  1. 在命令行中輸入eclipse命令並回車或單擊桌面上的Eclipse EE圖標打開Eclipse,如下圖所示:
    打開Eclipse

  2. 在Eclipse中單擊File->New-> Java Project新建Java項目,如下圖所示:
    新建Java項目

  3. 輸入項目名稱HelloJDB(你可以自己起名),並單擊Finish按鈕完成新建項目,如下圖所示:
    輸入項目名

  4. 在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行,如下圖所示:
Resume

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. 判斷一個數是不是回文數,數從命令行輸入,並進行測試(正常情況,異常情況,邊界情況)。

參考資料

  1. Eclipse精粹(Eclipse Distilled)》

  2. Java語言調試技術

  3. 軟件調試的藝術(電子版)》

  4. 構建之法電子版)》,著者鄒欣Blog


歡迎關注“rocedu”微信公眾號(手機上長按二維碼)

做中教,做中學,實踐中共同進步!

rocedu




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM