Java-黑蝙蝠  
          My name is mozart0
          外表澀苦但留醇香于舌尖
          online
          Adult Dating
          公告
          • 多一份自信,多一份成功!
            多看一本書,多一份機遇!
            多一次微笑,多一份快樂!
          日歷
          <2006年7月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345
          統計
          • 隨筆 - 10
          • 文章 - 0
          • 評論 - 32
          • 引用 - 0

          導航

          常用鏈接

          留言簿(6)

          隨筆分類(10)

          隨筆檔案(10)

          相冊

          天氣預報

          常去論壇

          搜索

          •  

          積分與排名

          • 積分 - 38634
          • 排名 - 1192

          最新評論

          閱讀排行榜

          評論排行榜

           


          ?

          ?1 import ? static ?java.lang.System. * ;
          ?2
          ?3 public ? class ?GCTest
          ?4 {
          ?5 ???? public ? static ? void ?main(String?args[]) {
          ?6 ????????
          ?7 ???????? // 因為Runtime并沒提供構造函數,它需保證每個應用程序在運行時只有一個Runtime對象。
          ?8 ???????? // 所以用Runtime類提供的getRuntime()方法來獲得惟一的Runtime對象。
          ?9 ????????Runtime?rt? = ?Runtime.getRuntime();
          10
          11 ???????? /*
          12 ????????freeMemory():返回?Java?虛擬機中的空閑內存量,以字節為單位。
          13 ????????totalMemory():返回?Java?虛擬機中的內存總量,以字節為單位。
          14 ???????? */

          15 ????????out.printf( " 程序開始%n " );
          16 ????????out.printf( " 剩余內存空間:%s。%n?---?總的內存空間:%s。%n " ,rt.freeMemory(),rt.totalMemory());
          17 ????????out.printf( " 下面建立3個Bat對象:%n " );
          18
          19 ????????Bat?b1? = ? new ?Bat( " red " );
          20 ????????Bat?b2? = ? new ?Bat( " white " );
          21 ????????Bat?blackbat? = ? new ?Bat( " black " );
          22
          23 ????????out.printf( " 建立3個對象之后:%n " );
          24 ????????out.printf( " 剩余內存空間:%s。%n?---?總的內存空間:%s。%n " ,rt.freeMemory(),rt.totalMemory());
          25 ????????out.printf( " 下面釋放這3個對象,設置為null即可。%n " );
          26
          27 ????????b1? = ? null ; // 取消該對象的引用,這樣將會被回收。
          28 ????????b2? = ? null ;
          29 ????????blackbat? = ? null ;
          30 ????????
          31 ???????? // 調用垃圾回收器?還可通過Runtime.getRuntime().gc()調用;
          32 ????????System.gc();
          33 ????????out.printf( " 調用垃圾回收器之后:%n " );
          34 ????????out.printf( " 剩余內存空間:%s。%n?---?總的內存空間:%s。%n " ,rt.freeMemory(),rt.totalMemory());
          35 ????}

          36
          37 }

          38
          39 class ?Bat
          40 {
          41 ????String?color;
          42 ???? public ?Bat(String?color) {
          43 ???????? this .color? = ?color;
          44 ????}
          ????
          45 ????
          46 ???? public ? void ?finalize() {
          47 ???? // GC會在對象被回收之前調用該方法,所以可通過該方法來確定對象回收的順序。
          48 ????????????out.printf( " 清除%s蝙蝠。%n " ,color);
          49 ????????}

          50 }

          51
          52 // ?以上程序在1.5?tiger中調試通過
          53 /* 執行結果:
          54 ----------?Run?java?----------
          55 程序開始
          56 剩余內存空間:1589320。
          57 ?---?總的內存空間:2031616。
          58 下面建立3個Bat對象:
          59 建立3個對象之后:
          60 剩余內存空間:1589320。
          61 ?---?總的內存空間:2031616。
          62 下面釋放這3個對象,設置為null即可。
          63 清除black蝙蝠。
          64 清除white蝙蝠。
          65 清除red蝙蝠。
          66 調用垃圾回收器之后:
          67 剩余內存空間:1816552。
          68 ?---?總的內存空間:2031616。
          69 Output?completed?(0?sec?consumed)?-?Normal?Termination
          70 */
          總結:java中可通過調用垃圾回收器來回收不使用用的對象,但這里的調用僅僅是通知,gc不一定會馬上執行清理工作。
          調用方法:
          Runtime.getRuntime().gc();
          System.gc();
          finalize()方法會在對象被回收前調用,因此可通過該方法來確定對象回收的順序。

          @ Author 黑蝙蝠? http://www.aygfsteel.com/blackbat? 2006-7-28
          posted on 2006-07-28 00:11 黑蝙蝠 閱讀(464) 評論(0)  編輯  收藏 所屬分類: J2SE(基礎)
           
          Copyright © 黑蝙蝠 Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 喀喇沁旗| 益阳市| 博湖县| 报价| 长汀县| 油尖旺区| 读书| 大方县| 阜宁县| 兴安县| 栾川县| 靖州| 黄骅市| 连城县| 温泉县| 苍山县| 大田县| 余江县| 双牌县| 蒲江县| 鹤山市| 孝感市| 墨竹工卡县| 高邮市| 贵港市| 东乌珠穆沁旗| 澳门| 丰顺县| 理塘县| 五河县| 平顺县| 岚皋县| 宜黄县| 商洛市| 伊宁市| 惠水县| 陕西省| 兴义市| 宜阳县| 淮北市| 城步|