首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

Java 第五周學習總結:異常處理、集合框架與泛型核心筆記

     編輯:Java 程式設計入門

教材第 8 章:異常處理機制精要

核心語法與規則

  • try-catch-finally 結構:finally 块無論是否拋出異常必執行;若 try 中有 return,finally 先執行再返回。
  • 捕獲順序:子類異常必須在父類之前,否則編譯錯誤或子類塊永不執行。
  • catch 參數列表不得有繼承關係,否則編譯報錯。
  • throw 可在 catch 中重新拋出異常,保持異常鏈。
  • 方法簽名 throws 聲明拋出異常類型,調用者需處理或繼續拋出。

繼承中的異常規約

子類重寫父類方法時 throws 限制:

  1. 不聲明任何異常
  2. 聲明父類方法部分異常
  3. 聲明父類異常的子類
  4. 聲明父類未聲明的 非受檢異常(RuntimeException 及其子類)
  5. 聲明父類異常的父類(即擴大拋出範圍) → 編譯錯誤

堆棧追蹤與資源管理

  • printStackTrace() 獲取多重調用棧異常傳播路徑。
  • 斷言:assert 用於開發期狀態檢查,非業務邏輯分支,可用 -ea 啟用。
  • Try-with-resources (JDK 7+):try (Resource r = ...) 自動調用 AutoCloseable.close(),支持多資源分號分隔,簡化 finally 關閉邏輯。
  • Scanner 配合 FileInputStream 讀取文件,Scanner 實現 AutoCloseable 可自動關閉底層流。

教材第 9 章:集合框架核心體系

Collection 體系

接口特性典型實現適用場景
List有序、可重複、索引訪問ArrayList(數組)、LinkedList(鏈表)需隨機訪問用 ArrayList;頻繁首尾增刪用 LinkedList
Set無序、唯一HashSet(哈希表)、TreeSet(紅黑樹)去重、快速查找
QueueFIFO/雙端LinkedList、ArrayDeque生產消費、任務調度
Deque雙端隊列/棧ArrayDeque棧操作、滑動窗口

關鍵方法差異

  • add/remove/element:失敗拋異常。
  • offer/poll/peek:失敗返回特殊值(false/null),推薦生產環境使用。

Map 體系

實現底層結構有序性線程安全典型場景
HashMap數組+鏈表/紅黑樹無序否高性能鍵值存取
TreeMap紅黑樹鍵自然序/Comparator否有序遍歷、範圍查詢
Hashtable數組+鏈表無序是(全表鎖)歷史遺留
Properties繼承 Hashtable無序是配置文件讀寫

Properties 常用 setProperty/getProperty 操作字串鍵值。

遍歷與排序

  • keySet()、values()、entrySet() 三種視圖。
  • Collections.sort(List) 要求元素實現 Comparable;或傳入 Comparator 定製排序。
  • Java 規範:順序敏感操作需元素實現 Comparable 或外部 Comparator。

泛型與 Lambda (JDK 8+)

  • 泛型語法 <T>:類型參數化,編譯期類型檢查,運行期類型擦除。
  • Lambda 表達式:(params) -> body,簡化函數式接口實現,forEach、stream 常用。
  • Iterable 父接口統一 iterator(),支持增強 for 循環。

本周實踐心得

本周以理論梳理為主,重點攻克異常處理細節陷阱(捕獲順序、finally 執行時機、try-with-resources)與集合框架選型依據(數組 vs 鏈表、哈希 vs 紅黑樹、線程安全與否)。下周將進入實戰編碼階段,通過項目驗證知識點。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved