天天看點

java小白從入門到精通(基礎八)

二十三. StringBuffer與StringBuilder

String類型的對象不可變的;

//String類型的對象不可變的;
String str = "hello";
//"hello"沒有引用指向之後會被jvm的gc進行垃圾回收
str = str + "123";
           
//1.建立StringBuffer的對象
//  内部建立了一個16個長度的字元的數組
StringBuffer sb = new StringBuffer("hello");
//append的時候内部會自動擴容字元數組,然後把追加的字元串放進字元數組,最後傳回字元數組
sb.append("123");
System.out.println(sb.toString());
           

StringBuilder的用法和StringBuffer的完全一樣

結論😄StringBuffer是線程安全的,StringBuilder是線程不安全的

如果在不考慮多線程的情況下,一般使用

StringBuildr

二十四. Java中的異常處理

錯誤:由于文法問題引起的編譯不通過的錯誤;(報紅)

異常:程式在運作或者沒有運作時出現的非正常,影響程式正常執行情況就是異常;

24.1 異常的分類

  • 運作時異常(RuntimeException)
  • 檢查異常(CheckedException)

24.2 Java中的運作時異常

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-0nBzU7Sb-1596526462840)(upload/image-20200703094133032.png)]

24.3 運作時異常的處理

運作時異常盡量要使用try…catch進行處理

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-iMX1WOZy-1596526462852)(upload/image-20200703101420861.png)]

24.4 檢查異常

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-5DzJg7FD-1596526462855)(upload/image-20200703094605759.png)]

  • 檢查異常的處理

jvm的異常處理方式是列印錯誤資訊,終止程式的執行;

繼續把異常抛出給調用方法的位置

java小白從入門到精通(基礎八)

自己來進行異常的處理

try…catch

public static void main(String[] args) {
    try {
        //可能出現異常的代碼(一定會執行)
        //如果出現異常則被catch捕獲到了,執行對應的catch,執行完成之後跳出try..catch的代碼塊,繼續執行外面的語句
        FileOutputStream fos = new FileOutputStream("f:/a.txt");
        int a = 10 / 0;
        System.out.println("*********************");
    } catch (FileNotFoundException e) {
        //如果出現異常則執行catch中的代碼
        System.out.println("檔案路徑不存在,請檢查檔案路徑");
    } catch (ArithmeticException e) {
        System.out.println("算數異常");
    }
    System.out.println("....................");
}
           

try…catch…finally

try {
    //可能出現異常的代碼(一定會執行)
    //如果出現異常則被catch捕獲到了,執行對應的catch,執行完成之後跳出try..catch的代碼塊,繼續執行外面的語句
    FileOutputStream fos = new FileOutputStream("f:/a.txt");
    int a = 10 / 10;
    System.out.println("*********************");
} catch (FileNotFoundException e) {
    //如果出現異常則執行catch中的代碼
    System.out.println("檔案路徑不存在,請檢查檔案路徑");
} catch (ArithmeticException e) {
    System.out.println("算數異常");
} catch (Exception e) {
    System.out.println("統一捕獲的異常");
} finally {
    //無論是否出現異常都會執行(一般執行釋放資源的處理)
    System.out.println("++++++++++++++++++++++++++++++++++");
}
System.out.println("....................");
           

24.5 jdk中的常見的異常

NullPointerException;//空指針異常
ArithmeticException;//數學運算異常
FileNotFoundException;//檔案沒有找到異常
ArrayIndexOutOfBoundsException;//數組下标越界異常
....
           

jdk中給我們定義的異常有很多;

java小白從入門到精通(基礎八)

但是有時候我們可能不太滿意這些異常,我們就需要自定義異常

24.6 自定義異常

java小白從入門到精通(基礎八)

24.7異常的抛出

java小白從入門到精通(基礎八)

二十五. java中的泛型(了解)

泛型的使用人群: 寫架構 寫架構的人;

作用: 是在編譯階段限制類型的;

java小白從入門到精通(基礎八)
java小白從入門到精通(基礎八)
java小白從入門到精通(基礎八)
java小白從入門到精通(基礎八)
java小白從入門到精通(基礎八)

泛型通配符

java小白從入門到精通(基礎八)

二十六. java中的包裝類

基本類型 包裝類
boolean Boolean
byte Byte
short Short
char Character
int Integer
float Float
long Long
double Double

java中的基本類型的變量功能太單一了,我們如果需要一些增強功能的話就得自己實作,但是java對開發者非常友好,對我們提供了非常好用的包裝類;

在實際開發過程中,盡量使用包裝類;

26.1 包裝類和基本類型的轉換

java小白從入門到精通(基礎八)

26.2 字元串和包裝類之間的轉換

java小白從入門到精通(基礎八)

26.3 字元串轉包裝類

26.4 包裝類轉字元串