1. 程式人生 > 其它 >Spring Boot 基於 GraalVM 構建

Spring Boot 基於 GraalVM 構建

Java基礎02

JavaDoc生成文件

引數資訊:

@author 作者名
@version 版本號
@since 指明需要最早使用的jdk版本
@param 引數名
@return 返回值情況
@throws 異常丟擲情況

生成文件:

javadoc -encoding UTF-8 charset UTF-8 xx.java

Jvm就會根據Java檔案中的JavaDoc註釋去生成相應的JavaDoc文件

使用者互動Scanner類

Scanner類能獲取使用者的輸入

基本語法:Scanner scanner = new Scanner(System.in);,這樣就建立了一個scanner物件,

那麼我們通過建立的這個scanner物件來獲取使用者輸入通過Scanner類的next()nextLine()方法獲取字串輸入,讀取前一般需要用hsaNext()hasNextLine()判斷時候還有資料輸入

next() :讀取一個字元,其在使用的時候需要注意一下幾點:

  1. 一定要讀取到有效字元後才可以結束輸入
  2. 對輸入有效字元之前遇到的空白,next()方法會自動將其去掉
  3. 只有輸入有效字元後才將其後面的空白作為分隔符或結束符
  4. next()不能得到帶有空格的字串
 public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String s = scanner.next();
        System.out.println(s);
    }

當輸入一串空格加字串後,得到的結果:

當字元之間間隔空格時,得到的結果:

nextLine() :以Enter為結束符,nextline方法返回回車之前的所有字元,可以獲取空白:

public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
//        String s = scanner.next();
        String s = scanner.nextLine();
        System.out.println(s);
    }

同樣測試當輸入一串空格加字串後,得到的結果:

當字元之間間隔空格時,得到的結果:

Scanner :進階

我們還可以通過scanner.nextdouble()來獲取浮點數輸入,nextint來獲取整數輸入等等...

Java流程控制

順序結構:

一句一句程式碼的往下執行,稱之為順序結構

選擇結構

  1. if單選結構:結構中僅僅包含一個if
  2. if雙選擇結構:if-else結構,與if單選結構相差不大
  3. if多選擇結構:if-elseif...-else,一旦一個elseif語句為True,則跳過下面所有語句
  4. 巢狀if結構:if-if

 public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("請輸入成績:");
        //if-elseif-else結構
        while (scanner.hasNextDouble()){
            double x = scanner.nextDouble();
            if(x>60&&x<=100){
                System.out.println("及格");
            }
            else if(x<60&&x>=0){
                System.out.println("不及格");
            }
            else{
                System.out.println("輸入資料不合法");
            }
        }


        scanner.close();


    }
  1. switch多選擇結構:
public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("請輸入大寫等級:");
        String x = scanner.next();
        switch (x){
// 注意:每個case結束後要有break語句,否則會一直執行
            case "A":
                System.out.println("優秀");
                break;
            case  "B":
                System.out.println("合格");
                break;
            case "C":
                System.out.println("一般");
                break;
            default:
                System.out.println("非法輸入");
        }
    }

迴圈結構

  1. while迴圈:while(表示式){} 表示式為True 迴圈執行
  2. do-while迴圈:do{}while(表示式) 至少執行一次
   public static void main(String[] args) {
        //輸出1-20的數
        //while迴圈
        System.out.println("while方式輸出");
        int i = 1;
        int a = 1;
        while (i<=20){
            System.out.println(i);
            i++;
        }
        System.out.println("------------------------");
        System.out.println("do-while方式輸出");
        do{
            System.out.println(a);
            a++;
        }while (a<=20);
    }

二者的區別在於:while先判斷後執行,do-while先執行一次後判斷

  1. for迴圈:
    public static void main(String[] args) {
        int sum = 0;
        int xsum = 0;
//for迴圈
        for (int i = 0; i <=100; i++) {
            if(i%2==0){
                sum+=i;
            }
            else{
                xsum+=i;
            }

        }
        System.out.println("偶數和"+sum);
        System.out.println("奇數和"+xsum);
    }

增強for迴圈:主要用於陣列上面的輸出之類

    //增強for迴圈
    public static void main(String[] args) {
        int[] num = new int[]{10,20,30,40};
        for(int i:num){
            System.out.println(i);
        }
    }

方法

方法的定義及呼叫

修飾符 返回值型別 方法名(引數型別 引數名){方法體}

public static int add(int a,int b){
     return a+b;
}

方法過載

在一個類中,有相同的函式名,但是形參不同的函式

過載規則

  1. 方法名必須相同
  2. 引數列表必須不同,個數或型別不同,引數排列順序不同等
  3. 方法的返回型別可以相同也可以不同
  4. 僅僅返回型別不同不足以方法過載

方法名稱相同時,編譯器會根據呼叫的方法的引數個數,引數型別等去逐個匹配,選擇對應的方法,如果匹配失敗,則編譯器報錯。

  public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double x = scanner.nextDouble();
        double y = scanner.nextDouble();
        double z = scanner.nextDouble();
        //兩個引數,呼叫第一個add方法
        double q = add(x,y);
        System.out.println(q);
        //三個引數,呼叫第二個add方法
        double w = add(x,y,z);
        System.out.println(w);
    }
    public static double add(double a,double b){
        return a+b;
    }
    //方法過載add
    public static double add(double a,double b,double c){
        return (a+b)/c;
    }

遞迴

一個方法反覆呼叫自己的方法,遞迴包含兩個部分:

  1. 遞迴頭:什麼時候不呼叫自身方法,如果沒有頭則陷入死迴圈
  2. 遞迴體:什麼時候需要呼叫自身方法
   public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int i = scanner.nextInt();
        System.out.println(diGui(i));
    }
    // 使用階乘來解釋遞迴
    public static  int diGui(int i){
        if (i==1) {
            // 遞迴頭,當i=1時停止呼叫遞迴體
            return 1;
        }else {
            // 遞迴體,反覆呼叫diGui()
            return i*diGui(i-1);
        }
    }

陣列

相同型別資料的有序集合,屬於引用型別

陣列的宣告及建立

宣告一個數組:變數型別[] 變數名字 = 變數的值

列如:int[] a = {1,2,3}

建立一個數組物件:

int[] a = new int[]

陣列初始化的方式

  1. 靜態初始化:int[] a = {1,2,3,4}
  2. 動態初始化:int[] b = new int[10] 然後再一個一個賦值
  3. 預設初始化:就是未被初始化的空間都是預設的值

陣列的基本特點

  1. 陣列的長度時確定的,陣列一旦被建立,大小就是不可以被改變的了
  2. 陣列中的元素型別必須相同,不允許出現混合型別
  3. 陣列中的元素可以是任何資料型別,包括基本型別和引用型別
  4. 陣列變數屬於引用型別,陣列可以看成是物件,陣列中的每個元素相當於該物件的成員變數
  5. 陣列本身就是物件,Java中物件是在堆中的,因此陣列無論儲存原始型別還是其他物件型別,陣列物件本身實在堆中的

Arrays類

陣列的工具類java.util.Arrays,Arrays類中的方法都是static修飾的靜態方法,在使用的時候可以直接通過類名來呼叫,而不需要new物件

在這裡先定義幾個陣列,方便下面介紹Arrays的一些功能

   int[] a = {1,2,5,35,666,3,876};
        int[] b = {2,4,7,10,999};
        int[] c = {1,2,5,35,666,3,876};

Arrays類的一些常用功能:

  1. 給陣列賦值,通過fill方法
     // Arrays.fill()將陣列a中的所有元素賦值為0
        Arrays.fill(a,0);
        System.out.println(Arrays.toString(a));
        // 將第二,五個數賦值為6
        Arrays.fill(a,2,5,6);
        System.out.println(Arrays.toString(a));
  1. 對陣列排序:通過sort方法,升序排序
      // Arrays的sort方法對陣列進行排序
        Arrays.sort(a);
        // Arrays.toString()是輸出陣列的一種方法
        System.out.println(Arrays.toString(a));
  1. 比較陣列:通過equals方法比較陣列中元素是否相等
        // Arrays.equals()比較兩個陣列是否相等,返回值為Boolean型別
        boolean x = Arrays.equals(a,c);
        System.out.println(x);
  1. 查詢陣列元素:通過binarySearch方法能對排序好的陣列進行二分查詢法操作
        Arrays.sort(a);
        // 通過binarySearch方法能對排序好的陣列進行二分查詢法操作,返回的是要查詢的數在排好序陣列中的下標
        Arrays.binarySearch(a,666);
        System.out.println(Arrays.binarySearch(a,666));