20165228 實驗一 Java開發環境的熟悉

20165228 實驗一 Java開發環境的熟悉

1、實驗內容及步驟

(一)使用JDK編譯、運行簡單的Java程序

  • 命令行下Java程序開發
    1.用VrtualBox打開Linux虛擬機

    2.使用Alt+Ctrl+T來打開命令行

    3.使用mkdir java建立一個名爲java的目錄,使用cd java進入該目錄

    4.使用mkdir 20165228建立名爲學號的目錄,使用cd 20165228進入該目錄

    5.在目錄20165228下建立第一個實驗目錄,並進入該目錄

    6.建立相應的bin和src文件夾來對.java和.class進行分類

    7.使用vim Hello.java來編輯該程序,編輯完成後,使用mv Hello.java src,將編輯好的程序移動到事先建立的src文件夾下


    8.使用javac -d bin src/Hello.java編譯程序,並將獲得的class文件輸出到bin目錄下。而後使用java -cp bin szk.Hello運行帶包的程序
    java

    (二)IDEA下Java程序開發、調試

    1.進入IDEA建立項目後,右鍵src-->New-->Java class

    2.輸入HelloJDB,選擇OK

    3.輸入代碼並點擊run(快捷鍵Alt+Shift+F10

    4.在第6行設置斷點後,進行Debug(快捷鍵Alt+Shift+F9),程序會運行到第6行時截止,能夠觀察到此時的各個變量值的狀況


    5.此時能夠進行Step into(快捷鍵F7)和Step over(快捷鍵F8)繼續單步執行
  • 如下是其區別
    step into(快捷鍵F7):單步執行,遇到子函數就進入而且繼續單步執行
    step over(快捷鍵F8):是在單步執行時,在函數內遇到子函數時不會進入子函數內單步執行,而是將子函數整個執行完再中止,也就是把子函數整個做爲一步
    step out(Shift+F8):當單步執行到子函數內時,用step out就能夠執行完子函數餘下部分,並返回到上一層函數。

    6.在第9行再設置一個斷點,使用Resume Program(快捷鍵F9)來跳過已確認沒有問題的代碼段

    7.設置條件斷點,而後運行,獲得在該條件下的結果

    vim

    (三)練習:實現簡單四則運算(能支持分數,加減乘除,支持括號),並進行測試(正常狀況,異常狀況,邊界狀況)

    代碼以下:
import java.util.Scanner;
import java.math.BigDecimal;
public class Calculator {
    public static void main(String[] args) {
        String name1="+";
        String name2="-";
        String name3="*";
        String name4="/";
        Scanner scanner=new Scanner(System.in);
        System.out.printf("選擇四則運算:");
        String str=new String(scanner.nextLine());
        if(name1.equals(str)){
            System.out.printf("請輸入須要運算的兩個數字,以空格分割:");
            BigDecimal a=new BigDecimal(scanner.nextFloat());
            BigDecimal b=new BigDecimal(scanner.nextFloat());
            System.out.printf(a+"+"+b +"結果是%f\n",a.add(b));
        }
        else if(name2.equals(str)){
            System.out.printf("請輸入須要運算的兩個數字,以空格分割:");
            BigDecimal a=new BigDecimal(scanner.nextFloat());
            BigDecimal b=new BigDecimal(scanner.nextFloat());
            System.out.printf(a+"-"+b +"結果是%f\n",a.subtract(b));
        }
        else if(name3.equals(str)){
            System.out.printf("請輸入須要運算的兩個數字,以空格分割:");
            BigDecimal a=new BigDecimal(scanner.nextFloat());
            BigDecimal b=new BigDecimal(scanner.nextFloat());
            System.out.printf(a+"*"+b +"結果是%f\n",a.multiply(b));
        }
        else if(name4.equals(str)){
            System.out.printf("請輸入須要運算的兩個數字,以空格分割:");
            BigDecimal a=new BigDecimal(scanner.nextFloat());
            BigDecimal b=new BigDecimal(scanner.nextFloat());
            System.out.printf(a+"/"+b +"結果是%f\n",a.divide(b));
        }
        else System.out.printf("輸入錯誤");
    }
}
  • 命令行調試

正常狀況:
tomcat

異常狀況:
ide

  • IDEA調試
    正常狀況:

異常狀況:
函數

2、實驗中遇到的問題

  • 問題1:在設計完代碼後, 調試時提示「java.lang.ClassNotFoundException: Calculator」
    解決方法:
    1.確認你的類庫在系統的CLASSPATH下面,若是是Tomcat,則能夠放在tomcat/lib/目錄下面。
    2 刪除重複的類庫,只保留最新的
  • 問題2:用IDEA調試代碼時,會提示找不到主類,讓我很疑惑。由於命令行調試時徹底正常
    解決方法:
    IDEA環境的問題,在項目的project structure 中,先將項目指定JDK ,而後在項目的PATH 中,將path修改成跟當前項目在一個路徑下測試

    3、實驗體會與總結

  • 前面的實驗部分,鞏固了前幾周婁老師在課上強調的在目錄下編譯和運行子目錄下的程序以及帶包程序的運行知識。
  • 對於後面的練習,帶括號的運算對我如今的水平來講是不容易理解的,因此我只寫了一個普通的四則運算程序。
  • 因爲未能想到四則運算的邊界,因此我也沒有測試其邊界值。idea

相關文章
相關標籤/搜索