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

Java 集合框架演進與設計模式實戰心得

     編輯:Java 相關知識

承接上篇,趁國慶假期整理筆記。上回覆蓋了動態加載、類加載器及 JDK/JRE 區別,本篇聚焦集合框架與設計模式兩大支柱主題。

一、 集合框架:新舊交替背後的權衡

Java 集合框架核心接口為 List(有序可重複)、Set(無序不可重複)、Map(鍵值對,Key 唯一)。常見實現類如 ArrayList、LinkedList、HashSet、HashMap 等。面試高頻題:Vector vs ArrayList、Hashtable vs HashMap。本質是「舊集合框架」(JDK 1.2 前,默認同步)與「新集合框架」(JDK 1.2+,默認非線程安全)的對決。

關鍵差異:

  • 命名更科學:List 下統一 ArrayList/LinkedList。
  • 新框架移除默認同步,需同步時用 Collections.synchronizedXxx() 包裝。

為何大刀闊斧移除鎖?技術演進受客觀環境驅動。Java 初衷是嵌入式開發(單線程、資源受限),類加載器設計為節省內存。隨著互聯網爆發,多線程成常態,舊框架「全加鎖」嚴重拖垮性能。Sun 曾主打 J2SE,卻因環境變化被 J2EE 掩蓋——技術細節最終服務於場景。

題外話:IT 巨頭更迭史(IBM→微軟→Google)印證「客觀環境變化決定大方向」。期待下一個巨頭來自亞洲。

二、 設計模式:從「背誦」到「內化」

GoF 23 種模式非銀彈,而是「一類問題的通用解法」。最佳學習路徑:

  1. 親手寫每種模式的最小 Demo,哪怕只有幾十行代碼。
  2. 輔以 UML 類圖記憶結構(前提是懂 UML)。
  3. 結合 JDK 源碼驗證:java.util.Observer/Observable 對應觀察者模式;java.io 流嵌套(BufferedReader(new FileReader(...)))是裝飾器模式教科書級應用。

反向驗證:學模式能深化對類庫的理解。如原型模式必須搞懂 Cloneable 與 Object.clone():默認淺拷貝(引用共享),深拷貝需實現 Cloneable 並重寫 clone()(突破 protected 限制)。引用鏈較長時,序列化再反序列化(ObjectOutputStream/ObjectInputStream)是取巧且有效的深拷貝方案。

模式本質是前人經驗總結。代理模式例:Child 想買東西,Adult 代理實現 buy() 內部調用 Child.buy(),外部暴露 Adult.buy()。寫通這個流程,模式即透徹。

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