大学IT网 - 最懂大学生的IT学习网站! QQ资料交流群:367606806
当前位置:大学IT网 > Java技巧 > Java基础之垃圾回收

Java基础之垃圾回收

关键词:Java垃圾回收  阅读(471) 赞(16)

[摘要]本文是对Java基础之垃圾回收的讲解,对学习Java编程技术有所帮助,与大家分享。
 /**
  * 对象在没有任何引用可以到达时,生命周期结束,成为垃圾。
  * 所有对象在被回收之前都会自动调用finalize()方法。
  * **************************************************
  * 一个对象在成为垃圾之后不会被马上回收,
  * JVM会检测内存中的垃圾堆积到一定程度时才会回收,
  * 如果我们不想等到这个时候才回收,
  * 可以使用System.gc()方法来通知虚拟机回收垃圾。
  * 调用该方法之后JVM会开启新线程做处理垃圾的工作,这需要一定时间。
  */
 public class GcDemo {
 
     public static void main(String[] args) throws Exception {
 
         for(int i = 0; i < 1000; i ++){
             new Person();    //创建一个对象之后,没有使用成为垃圾
         }
         System.out.println("回收之前: " + Person.count);
         System.gc();    //通知虚拟机进行垃圾回收
         /*
          * 调用System.gc()之后JVM会开启新线程做处理垃圾的工作,需要一定的时间,让其休眠几秒之后,再查看垃圾回收的效果
          * 垃圾多回收需要的时间也会长
          */
         Thread.sleep(1000);    
         System.out.println("回收之后: " + Person.count);
     }
 
 }
 
 class Person{
     //定义一个count来计数,查看回收之前和回收之后
     public static int count;
     
     public Person(){
         count ++;    //每创建一个对象count加加
     }
     //所有对象在被回收之前都会自动调用finalize()方法
     public void finalize(){
         count --; //回收一个垃圾减掉一个
     }
 }


相关评论