JavaSE基礎知識分享(九)

ikestu小猪發表於2024-08-18

寫在前面

今天繼續講集合後面的部分,還會加一點JavaIO流的知識!

關於 Java 增強 for 迴圈和 Collections 類概述:

增強 for 迴圈

概述

增強 for 迴圈用於簡化陣列和 Collection 集合的遍歷。它使程式碼更簡潔,易於閱讀。

格式

for (元素資料型別 變數 : 陣列或者 Collection 集合) {
    // 使用變數,該變數就是元素
}

好處

  • 簡化遍歷程式碼
  • 避免使用迭代器時可能出現的複雜性

注意事項

  • 增強 for 迴圈的目標物件(陣列或集合)需要進行 null 判斷,以避免 NullPointerException

示例

假設有一個 List<String> 集合 list,遍歷這個集合的傳統 for 迴圈如下:

for (int i = 0; i < list.size(); i++) {
    String item = list.get(i);
    System.out.println(item);
}

使用增強 for 迴圈可以簡化為:

for (String item : list) {
    System.out.println(item);
}

Collections

概述

Collections 是 Java 提供的一個工具類,用於對集合進行操作。它包含了許多靜態成員方法,可以對集合進行各種操作。

靜態成員方法

  • public static <T> void sort(List<T> list)
    List 進行排序。

  • public static <T> int binarySearch(List<?> list, T key)
    在排序的 List 中進行二分查詢。

  • public static <T> T max(Collection<?> coll)
    返回集合中最大元素。

  • public static void reverse(List<?> list)
    反轉 List 中元素的順序。

  • public static void shuffle(List<?> list)
    隨機打亂 List 中元素的順序。

同步集合

將不安全的集合轉換為執行緒安全的集合。

  • public static <T> Collection<T> synchronizedCollection(Collection<T> c)
    返回由指定集合支援的同步(執行緒安全)集合。

  • public static <T> List<T> synchronizedList(List<T> list)
    返回由指定列表支援的同步(執行緒安全)列表。

  • public static <K, V> Map<K, V> synchronizedMap(Map<K, V> m)
    返回由指定地圖支援的同步(執行緒安全)對映。

  • public static <T> Set<T> synchronizedSet(Set<T> s)
    返回由指定集合支援的同步(執行緒安全)集。

關於Java 輸入輸出流和異常處理的概述:

輸入輸出流

概述

Java 提供了一系列類和介面來處理輸入和輸出操作。這些類主要分為位元組流和字元流兩大類。

位元組流

  • InputStream: 所有位元組輸入流的基類。
  • OutputStream: 所有位元組輸出流的基類。
  • 常用類:
    • FileInputStream: 從檔案中讀取位元組資料。
    • FileOutputStream: 向檔案中寫入位元組資料.
    • BufferedInputStream: 帶有緩衝區的輸入流,提高效率。
    • BufferedOutputStream: 帶有緩衝區的輸出流,提高效率。

字元流

  • Reader: 所有字元輸入流的基類。
  • Writer: 所有字元輸出流的基類.
  • 常用類:
    • FileReader: 從檔案中讀取字元資料。
    • FileWriter: 向檔案中寫入字元資料。
    • BufferedReader: 帶有緩衝區的字元輸入流,通常用於讀取文字行。
    • BufferedWriter: 帶有緩衝區的字元輸出流,通常用於寫入文字行。

異常處理

概述

異常是指 Java 程式在編譯或執行過程中遇到的不正常情況。異常處理機制用於處理這些情況,以避免程式崩潰。

Throwable

  • Error: 表示嚴重的錯誤,通常不需要應用程式去捕獲或處理。
  • Exception: 表示程式執行過程中發生的異常情況,程式可以捕獲和處理。

異常的分類

  • 編譯時期異常: 需要在編譯時處理(例如:IOException, SQLException)。這些異常必須用 try...catch 語句塊處理,或者在方法簽名中使用 throws 宣告。
  • 執行時期異常 (RuntimeException): 不需要在編譯時處理(例如:NullPointerException, ArrayIndexOutOfBoundsException)。這些異常可以在執行時被捕獲,但不強制要求處理。

異常的處理

  • try...catch...finally:
    try {
        // 可能引發異常的程式碼
    } catch (ExceptionType e) {
        // 處理異常的程式碼
    } finally {
        // 無論是否發生異常,都會執行的程式碼
    }
    
  • throws:
    在方法定義上宣告異常,表明該方法可能丟擲異常,呼叫者需要處理或繼續丟擲。
    public void myMethod() throws IOException {
        // 方法體
    }
    
  • throw:
    在方法內部丟擲異常。
    if (condition) {
        throw new CustomException("Custom exception message");
    }
    

自定義異常

自定義異常類可以擴充套件 ExceptionRuntimeException

public class CustomException extends Exception {
    public CustomException(String message) {
        super(message);
    }
}

好了今天的分享就結束了,之後我將繼續分享IO流後面的內容!

相關文章