linugb118--java space

          Java

          Java中finalize

          Java中finalize()
          java這個finalize內置方法,估計很多人不會去用途,如果理解這個方法的用法和含義就能做一些可能我們一起認為不能做的事情。
          在JAVA中有一種垃圾收集器的機制,當它運行時(通常在系統內存低到一定限度時自動運行),會回收不再使用的對象所占用的內存,所以,在JAVA程序中,我們通常只考慮創建對象,而從不關心對象的清除。Finalize()是JAVA為類提供的一種特殊方法。垃圾收集器的工作過程大致是這樣的:一旦垃圾收集器準備好釋放無用對象占用的存儲空間,它首先調用那些對象的finalize()方法,然后才真正回收對象的內存。通過使用finalize(),就可以在垃圾收集器運行期間進行一些特殊的工作。

          你們也就是說,當gc事件啟動時候,他是調用對象的finalize(),來實現真正的回收,那么首先這些對象是沒有用的,最簡單的使用,我可以在finalize()中添加
          system.out.print 來跟蹤系統的回收了那些對象,可以深層次的了解系統對象的使用情況,比如那些對象回收最頻繁等等。

          另外我在網上也看到有人這么用finalize(). 主要是統計在線人。這個網上也有很多,本人自己也做過,但是在logout的時候,有三種情況
          1.點擊程序的logout,這個我們可以監聽到。2.去別的網站 3.關閉瀏覽器。(當然現在第二,第三有些網站也能通過script捕獲到,這里我們不談)
          我們假定傳統的,session在服務端還是存在的,一般是經過服務器端timeout,自動將這個session的對象失效,那么我們在這些對象調用finalize()做一些
          統計就能知道那些人已經離線。
          具體這個例子
          http://www.qqread.com/java/w712250600.html

          這只是一個例子

          我想說的是,我們如果理解了finalize的含義和用途,就能在很多地方用好它,未嘗不是一種新方式。

          posted on 2010-07-16 17:18 linugb118 閱讀(1829) 評論(1)  編輯  收藏

          Feedback

          # re: Java中finalize 2010-07-18 19:52 Agrael

          finalize可能造成對象再生,用ref好得多。  回復  更多評論   



          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          My Links

          Blog Stats

          常用鏈接

          留言簿(1)

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 临泉县| 红河县| 清水河县| 洮南市| 沁阳市| 合水县| 皮山县| 石阡县| 上饶市| 信丰县| 庆安县| 荣昌县| 新余市| 西贡区| 江阴市| 永胜县| 桂东县| 西乡县| 高密市| 新和县| 松江区| 会同县| 志丹县| 吉林市| 九江市| 鹤山市| 台山市| 景洪市| 水城县| 合水县| 永登县| 金塔县| 福泉市| 盐亭县| 黎平县| 贵溪市| 石楼县| 黑水县| 古田县| 贡山| 阳江市|