1. 程式人生 > >20165202 實驗一 Java開發環境的熟悉

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

被調用 tint ftw sys tro 統計 不能 n) table

一、實驗內容及步驟

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

  • 建立“自己學號exp1”的目錄
    mkdir 20165202exp1

  • 進入目錄
    cd 20165202exp1

  • 在“自己學號exp1”目錄下建立src,bin等目錄
    mkdir bin mkdir src

  • vim編輯代碼
    vi Hello.java

    技術分享圖片

  • javac,java的執行在“自己學號exp1”目錄
    javac -d bin src/Hello.java

  • 運行程序
    java Hello

    技術分享圖片

  • 運行截圖
    技術分享圖片

  • 碼雲鏈接

(二)使用IDEA編輯、編譯、運行、調試Java程序

  • 設置斷點只需在要設置斷點的行號旁用鼠標單擊一下即可使用。使用Alt+Shift+F9

    快捷鍵調試Java程序

    技術分享圖片

  • 單步運行有兩種:Step Into(快捷捷F7)和Step Over(快捷捷F8)實際使用中我們優先使用Step Over,只有方法執行出錯了,說明程序問題在被調用方法中,這時再回來通過Step Into進入方法進行調試。
  • 臨時斷點:最簡單的方法是把光標移到要添加斷點的行,使用菜單「Run」->「Toggle Temporary Line Breakpoint」或使用快捷鍵Ctrl+Alt+Shift+F8

    技術分享圖片

  • 條件斷點: 在第9行左邊斷點處單擊鼠標右鍵,彈出斷點屬性框,我們設置條件“i==50”

    技術分享圖片

  • 方法斷點:把光標移到方法中的任一行,使用菜單「Run」->「Toggle Method Breakpoint

    技術分享圖片

(三)練習(通過命令行和IDEA兩種方式實現,並使用IDEA進行調試)

實現Fibonacci數列功能,並進行測試(正常情況,異常情況,邊界情況)

  • 程序代碼
  1 import java.util.Scanner;
  2 
  3 public class fibonacci {
  4 
  5     public static void main(String[] args) {
  6 
  7         Scanner scanner = new Scanner(System.in);
  8 
  9         System.out.println("請輸入一個整數:");
  10 
  11         int n = scanner.nextInt();
  12 
  13         System.out.println("fibonacci數列為:");
  14         if(n<=0) {
  15             System.out.println("非法輸入");
  16         }
  17         else {
  18           for (int j = 1; j <= n; j++) {
  19 
  20             System.out.println(" a["+j+"] =  "+fibonacci(j));
  21 
  22           }
  23         }
  24         scanner.close();
  25 
  26     }
  27 
  28     private static int fibonacci(int i) {
  29 
  30         if (i == 1 || i == 2){
  31 
  32             return 1;
  33 
  34         }else{
  35 
  36             return fibonacci(i - 1) + fibonacci(i - 2);
  37 
  38         }
  39 
  40     }
  41 
  42 }
  • 命令行運行:

(1)正常情況

技術分享圖片

(2)異常情況

技術分享圖片

(3)邊界情況

技術分享圖片

碼雲鏈接

  • IDEA運行:

(1)正常情況

技術分享圖片

(2)異常情況

技術分享圖片

(3)邊界情況

技術分享圖片

  • IDEA調試

    單步調試:在第6、9行設置斷點

技術分享圖片

方法斷點:在第4、23行設置斷點

技術分享圖片

二、實驗過程中遇到的問題

開始寫練習代碼Fibonacci實現時錯誤理解了題意,輸出值為對應數字下的F函數

技術分享圖片
後來只能輸出固定前n項(例如20),結合之前學習的Scanner這一用法
Scanner scanner = new Scanner(System.in); System.out.println("請輸入一個整數:"); int n = scanner.nextInt();
通過調用解決了無法通過輸入改變n的問題

三、實驗體會與總結

統計PSP(Personal Software Process)時間:

步驟 耗時 百分比
需求分析 2min 2.5%
設計 8min 10%
代碼實現 25min 31.25%
測試 5min 6.25%
分析總結 40min 50%

個人總結
本次實驗內容較為基礎,主要考察java開發環境的熟悉和一些基本操作。編程有一套完整的流程:分析需求、設計、代碼實現、測試、總結,這也是我們今後編程的一個基本框架。在試驗過程中學習掌握了idea的相關用法,確實比vim命令行要好用一些,調試過程的顯示更加清晰。每周敲入課本代碼只是最基本的一項工作,在實際應用中我發現還需要結合更多的思考理解才能真正“學會應用”,不能機械地“為了敲代碼而敲”。

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