请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册
   Java基础之垃圾回收







   1 /**
2 * 对象在没有任何引用可以到达时,生命周期结束,成为垃圾。
3 * 所有对象在被回收之前都会自动调用finalize()方法。
4 * **************************************************
5 * 一个对象在成为垃圾之后不会被马上回收,
6 * JVM会检测内存中的垃圾堆积到一定程度时才会回收,
7 * 如果我们不想等到这个时候才回收,
8 * 可以使用System.gc()方法来通知虚拟机回收垃圾。
9 * 调用该方法之后JVM会开启新线程做处理垃圾的工作,这需要一定时间。
10  */
public class GcDemo
{
     public static void main(String[] args) throws Exception
{
      for(int i = 0; i < 1000; i ++){
                             new Person();    //创建一个对象之后,没有使用成为垃圾17         
                                             }
     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 --; //回收一个垃圾减掉一个
                         }
               }
收藏
程序员是值得尊敬的,程序员的双手是魔术师的双手,他们把枯燥无味的代码变成了丰富多彩的软件。

0 个回复

您需要登录后才可以回帖 登录 | 立即注册