二十三. 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的異常處理方式是列印錯誤資訊,終止程式的執行;
繼續把異常抛出給調用方法的位置
自己來進行異常的處理
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中給我們定義的異常有很多;
但是有時候我們可能不太滿意這些異常,我們就需要自定義異常
24.6 自定義異常
24.7異常的抛出
二十五. java中的泛型(了解)
泛型的使用人群: 寫架構 寫架構的人;
作用: 是在編譯階段限制類型的;
泛型通配符
二十六. java中的包裝類
基本類型 | 包裝類 |
---|---|
boolean | Boolean |
byte | Byte |
short | Short |
char | Character |
int | Integer |
float | Float |
long | Long |
double | Double |
java中的基本類型的變量功能太單一了,我們如果需要一些增強功能的話就得自己實作,但是java對開發者非常友好,對我們提供了非常好用的包裝類;
在實際開發過程中,盡量使用包裝類;
26.1 包裝類和基本類型的轉換
26.2 字元串和包裝類之間的轉換
26.3 字元串轉包裝類
26.4 包裝類轉字元串