日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

《Effective Java》 第一讲:创建和销毁对象

發布時間:2023/12/18 java 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《Effective Java》 第一讲:创建和销毁对象 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。

一、用靜態工廠方法代替構造器

用靜態工廠的優點 :

1. 方法有名字,更好理解。

2.不必每次調用的時候都創建一個新對象。

3.可以返回原類型的子類型對象,這樣在選擇返回類型的時候有了更大的靈活性。

4。在創建參數化類型的實例的時候,使代碼更簡潔。

?

靜態工廠的缺點:

1.本類如果不含有公有或是受保護的構造器,就不能被子類化。

2.與其它的靜態方法實際上沒有任何區別。

?

二、遇到多個構造參數用構建器

1.實現方式:靜態成員類(靜態內部類)。 public static class Builder { ... }?

客戶端代碼可以簡寫為:Student stu = new Student.Builder?(20 , 10).birthday("1996-10-13").grade("大二").build(); ?

這樣當大多數參數都是可選的時候,與使用傳統的不斷重載的構造器模式相比,使用 builder 模式的客戶端代碼更易于閱讀和理解。構建器也比 java ?beans 更安全。

?

三、用私有構造或者枚舉強化 Singleton屬性

實現1:公有 + 靜態 + final ,如: public static final INSTANCE;

實現2:privatestatic final XxxxINSTANCE = new Xxxx( ) ;

public staticXxxxgetInstance ( ) {returnINSTANCE; }

實現3:單個元素的枚舉類型。

?

四、通過私有構造器強化不可實例化

比如:工具類中的方法都應該是靜態的,工具類不應當被實例化。

?

五、避免創建不必要的對象

1. 能直接賦值就不要new , 如:String ?str = new String("123"?) ,應當寫為 String str =?"123" ;

2. 高頻率使用的代碼可以考慮抽離為一個方法,該方法可以考慮定義為靜態方法

3.優先使用基本類型,而不是包裝類,當心無意識的自動裝箱,會生成不少多余的對象。

?

六、消除過期對象的引用?

1. 所謂的過期引用是指永遠也不會被解除的引用 。比如定義了一個數組,但是其中的部分元素是確定不會被使用的。這種情況視為對象引用 已經過期,就應該清空這些元素,清除這些引用。這樣如果以后又被錯誤的引用 就會立即拋出 NollPointException 。

2. 消除過期引用可幫助防止內存泄露,內存泄露的常見來源是緩存,有時候會把對象的引用 放入到緩存當中,并且長時間遺忘了它,這時就應該考慮緩存中的項是否全都依舊有意義。所以緩存應該不時的清除掉已經無用的項。清除工作可由后臺一個線程來完成。

3. 監聽器和其它回調也有可能導致內存泄露。如果你實現了一個API, 客戶端在API中注冊回調,卻一直沒有顯示的取消注冊,那么除非你采取某些動作,否則它們就會不斷聚集。確保回調立即被當作垃圾回收的最佳方法是保存它們的弱引用,,例如只將它們 保存為WeakHashMap中的鍵。

?

七、避免使用最終方法

1. 最終方法就是 finalize( ) ,垃圾回收方法。原因是不能保證會及時回收,甚至不能保證會被回收(如果未被捕獲的異常在終結過程中被拋出來,那么這種異常可能會被忽略。并且使用終結方法會有嚴重的性能損失。因此,不應該依賴終結方法來更新重要的持久狀態。

2. 應該使用顯示的終止方法,通常與 try - finally 結合使用,以確保及時終止。比如字節流、字符流、數據庫連接等就應該使用顯示的 close 方法。 ?

?

總結

以上是生活随笔為你收集整理的《Effective Java》 第一讲:创建和销毁对象的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。