Java-黑蝙蝠  
My name is mozart0
外表涩苦但留醇香于舌尖
online
Adult Dating
公告
  • 多一份自信,多一份成功!
    多看一本书,多一份机遇!
    多一次微笑,多一份快乐!
日历
<2006年7月>
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345
统计
  • 随笔 - 10
  • 文章 - 0
  • 评论 - 32
  • 引用 - 0

导航

常用链接

留言簿(6)

随笔分类(10)

随笔档案(10)

相册

天气预报

常去论坛

搜索

  •  

积分与排名

  • 积分 - 38471
  • 排名 - 1187

最新评论

阅读排行榜

评论排行榜

 


 

 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.blogjava.net/blackbat  2006-7-28
posted on 2006-07-28 00:11 黑蝙蝠 阅读(455) 评论(0)  编辑  收藏 所属分类: J2SE(基础)

只有注册用户登录后才能发表评论。


网站导航:
 
 
Copyright © 黑蝙蝠 Powered by: 博客园 模板提供:沪江博客