[物件] 第 2 章. 面向物件程式設計 這是一份文件,它解釋了使用物件導向程式設計方法來實現電影訂票系統的方法。它涵蓋了合作、物件、類別、繼承、多型、抽象化和組合等概念。它通過封裝、介面和實現隱藏來確保物件的自律性,並提供提高程式碼重用性和靈活性的方法。
[物件] 第 1 章。物件,設計 在軟體開發中,實務比理論更重要,好的設計可以讓代碼更容易理解,並能靈活地應對變更。物件 導向設計提供了一種管理合作物件之間依賴關係的方法,藉此可以提高代碼的可維護性和可擴展性。
[Effective Java] 項目 6. 避免不必要的物件建立 這是一份關於在 Java 中減少不必要物件建立的指南。對於 String、Boolean 等不變物件,最好使用字面值;對於正規表示式,最好快取 Pattern 物件。此外,自動裝箱會導致效能下降,因此最好使用基本類型。有關更多資訊,請參閱「Effective Java」。
[Effective Java] 项目 5. 不要显式地使用资源,而应该使用依赖注入 如果类依赖于外部资源,则最好不要使用单例和静态实用程序类。通过依赖注入,可以提高类的灵活性、可重用性和可测试性,而使用工厂方法模式可以使依赖注入更加高效。
[有效 Java] 項目 4. 要阻止實例化,請使用私有建構函數 僅包含靜態方法和欄位的工具類,最好將建構函數的存取修飾符設定為 private,以阻止實例化。 這可以防止使用者誤認為建構函數是自動生成的,並使繼承變得不可能,從而明確表示類別的意圖。
[有效 Java] 項目 3. 使用私有建構函式或枚舉類型來保證單例 本文章介紹了在 Java 中實現單例模式的三種方法(公用靜態成員、靜態工廠方法、枚舉類型),並說明了每種方法的優缺點以及序列化時的注意事項。考慮到反射攻擊的安全性以及程式碼簡潔性,文章建議使用枚舉類型作為最合適的方法。(資料來源:有效 Java, https://catsbi.oopy.io/d7f3a636-b613-453b-91c7-655d71fda2b1)
[Effective Java] 項目 2. 若建構函式有許多參數,請考慮使用建構器 在建立具有許多參數的物件時,使用建構器模式可以使程式碼更乾淨易讀。使用必要的參數建立建構器物件,使用 setter 方法設定選用參數,最後呼叫 build() 方法完成物件。此模式特別適用於分層設計的類別。 ([Effective Java]節錄)
[Effective Java] 項目 1. 考慮使用靜態工廠方法而非建構函式 靜態工廠方法是一種比建構函式更靈活且有效率的建立實例的方法。它們可以具有名稱,並可返回符合特定條件的實例,並可透過快取來提高效能。與單例模式不同,靜態工廠方法可以建立和返回多種類型的實例,並且可以保持彈性,而無需使用反射。
Java Collections Framework(JCF)是什麼? - JCF 的定義和特點 (JAVA) Java Collections Framework (JCF) 是一組提供標準化方式來有效處理大量數據的 Java 類。JCF 通過將數據存儲結構和算法實 現為類來提高代碼可重用性、性能提升和 API 相互操作性。
[Spring] Filter、Interceptor、Argument Resolver 是什麼? 深入了解 Spring Web 應用程式中處理請求的 Filter、Interceptor、Argument Resolver 的概念和差異。 比較分析各功能的實現方式、使用時機、優缺點,並透過實際範例程式碼幫助理解。 此外,還提供有關 Filter、Interceptor、Argument Resolver 的預期面試問題和答案。
[Spring] @Async 使用方法 了解如何使用 Spring @Async 簡化 Java 異步處理的實作。透過 @Async 注解,您可以將同步方法轉換為異步方法,並透過執行緒池設定來提高效率。本文也會探討如何使用 Future、ListenableFuture 和 CompletableFuture 來有效管理異步處理結果。
[Java] Synchronized Collection vs Concurrent Collection 在 Java 中,当在多线程环境中使用集合时,本文比较分析了各种解决同步问题的方法及其优缺点。 分析了 Vector、Hashtable、Collections.synchronizedXXX 等同步集合和 CopyOnWriteArrayList、 ConcurrentHashMap、ConcurrentLinkedQueue 等并发集合的特点和性能差异,以及各自的最佳使用场景。
equals() vs hashCode() 在 Java 中,`equals()` 和 `hashCode()` 是用于比较对象相等性和同一性的重要方法。 `equals()` 用于比较对象的內容是否相同,而 `hashCode()` 用于确定对象是否相同。在哈希数据结构中, 使用 `hashCode()` 来快速查找对象,因此,在重写 `equals()` 时,最好也重写 `hashCode()` 以保持一致性。
[Java] 反射概念及使用方法 反射是 Java 程式執行時,能夠存取類別資訊並操作類別的 API。它允許在執行時建立類別實例,存取欄位和方法,但可能破壞封裝性並降低效能,因此應謹慎使用。在 Spring 框架等需要動態建立和管理物件的場合,它非常有用。
[DB] 設定快取的標準 這是一份關於如何快取經常被讀取但很少被寫入的數據的實務指南。它將說明如何利用 APM(例如 DataDog)分析 RDB 查詢呼叫記錄,並選擇查詢次數多但更新次數少的表格作為快取目標。