垃圾内存回收

  今天上午我们老师讲Java的垃圾内存回收机制,然后下午我就写这个简单的几句好多次,不是说代码很长,就那么几句的,就是有些想不懂的。

  老师讲的垃圾内存回收:

  1.垃圾内存:

  就是通过new关键字分配内存并创建了一个对象,比如new Garbage();就是在产生垃圾

  

  2.垃圾回收:

  通过调用finalize()方法,来进行回收.

  3.代码:

class Garbage
{

  int index;//判断销毁的对象编号
  static int count;

  Garbage(){

     count = count+1;
     System.out.println("object:"+count+"constructed.");
     setID(count);
  }

  void setID(int id){
    
  index = id;

}

 protected void finalize(){
 
 System.out.println("object:"+index+"is reclaimed.");

}

public static void main(String[] args){

new Garbage();
new Garbage();
new Garbage();
new Garbage();
new Garbage();
new Garbage();
System.gc();

}



}

 

 4.老师和同学的运行结果:

扫描二维码关注公众号,回复: 823364 查看本文章


 

---------------------------------------------------------------- 

 

1.看API查看gc(),和finalize()方法:

 gc():

 
 
 finalize():


 
 

2.通过API知道finalize():

  1.显式的调用finalize方法,会调用finalize();

  2.所有对象被Garbage Collection时自动调用,比如运行System.gc()的

时候会调用finalize();

 

3.然后我的运行结果如下:

 
 

4.然后就在网上搜:


 

5.最后得出是可能是JDK版本问题,老师的是JDK6,我的是JDK7:


 

6.然后看了好久的G1垃圾收集器,这个没看懂的

7.求大神指点.

8.补充:

修饰符的作用范围:
 

对于protected:


 
 
 

 

 

     

猜你喜欢

转载自cb123456.iteye.com/blog/2215524