
第85條 其他序列化優先于 Java 序列化 避免序列化漏洞被利用的最佳方法是永遠不要反序列化任何東西 任何新系統中都沒有理由使用 Java 序...
第83條 慎用延遲初始化 延遲初始化降低了初始化類或者創建實例的開銷,卻增加了訪問被延遲初始化的域的開銷 在大多數情況下,正常的初始化要優先于延...
第82條 線程安全性的文檔化 一個方法中出現 synchronized 修飾符,這是個實現的細節,并不是 API 的一部分 類為了可以被多個線程...
第81條 并發工具優先于 wait 和 notify 比較常見的同步器:CountDownLatch、Semaphore、CyclicBarri...
第80條 executor、task 和 stream 優先于線程 等待一個任務集合中的任何任務或者所有任務完成-> invokeAny或inv...
第78條 同步訪問共享的可變數據 同步不僅可以阻止一個線程看到對象處于不一致的狀態之中,它還可以保證進入同步方法或者同步代碼塊的每個線程,都看到...
第79條 避免過度同步 在一個被同步的區域內部,不要調用設計成要被覆蓋的方法,或者是由客戶端以函數對象的形式提供的方法 死鎖的例子:public...
第76條 努力使失敗保持原子性 通常來講,調用方法失敗了,應該使對象保持在被調用之前的狀態 實現失敗原子性的方法:設計一個不可變的對象。如果對象...
第75條 在詳細信息中包含捕獲的失敗信息 異常類型的toString方法應該盡可能多地返回有關失敗原因的信息 為了捕獲失敗,異常的詳細信息應該包...