Effective Java第七条:避免使用终结方法
第七條:避免使用終結方法
?
?
1,??終結方法(finalizer)會讓程序不穩定,性能降低,出現可移植性的問題。
2,??Finalizer在c++中師析構器(destructors)的一部分,用作回收資源。在java中垃圾回收機制可以幫助完成。也可以通過try-finally在手動執行類似工作。
3,??在JVM中終結方法是被延遲執行的,也就是說,線程優先級低于其他類型的線程,不是第一時間你關閉的操作就被執行。所以切記不得用以在要求時間性上很嚴格的操作中。
4,??System.gc和System.runFinalization這兩個方法也不能保證終結方法一定執行。
5,??提供一個顯示的終止方法,并要求每個類的客戶端在確保每個實例不在有用的時候調用這個方法,并且實例必須記錄自己是否已經被終結。如果方法終結后還有對象試圖去訪問,則必須檢測這個域并拋出IllegalStateException異常。
6,??顯示終止方法的典型例子是:InputStream,OutputStream,java.sql.Connection.Java.awt中的Graphics.dispose,Window.dispose,Image.flush.
7,??終結方法的好處:a,充當安全網。B,終止非關鍵的本地資源
8,??如果使用了終結方法,記得調用super.finalize。如果用終結方法做安全網,那么請記住終結方法的非法用法,如果終結方法于非final類關聯起來了,請使用終結方法守衛者(finalizer guardian)確保子類調用了super.finalize
9,???
轉載于:https://www.cnblogs.com/jisheng/archive/2012/03/04/2379281.html
總結
以上是生活随笔為你收集整理的Effective Java第七条:避免使用终结方法的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: jquery ui datepicker
- 下一篇: 利用数据库创建webservice
