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 閱讀(1830) 評論(1)  編輯  收藏

          Feedback

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

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



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


          網站導航:
           

          My Links

          Blog Stats

          常用鏈接

          留言簿(1)

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 绥江县| 德格县| 武宣县| 望谟县| 衡阳市| 福海县| 剑河县| 涡阳县| 宜兰县| 闽清县| 若羌县| 扬州市| 太康县| 玉龙| 井陉县| 临沂市| 乐业县| 花莲市| 康马县| 阿克陶县| 青田县| 嘉鱼县| 大悟县| 偃师市| 吉水县| 阜南县| 黄山市| 神池县| 亚东县| 西昌市| 安福县| 土默特右旗| 焦作市| 罗平县| 阜宁县| 武平县| 泸州市| 石屏县| 如皋市| 淮南市| 黄石市|