`
Cb123456
  • 浏览: 63498 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

垃圾内存回收

    博客分类:
  • java
阅读更多

  今天上午我们老师讲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.老师和同学的运行结果:


 

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

 

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:


 
 
 

 

 

 

 

     

  • 大小: 136.9 KB
  • 大小: 14.4 KB
  • 大小: 44.4 KB
  • 大小: 4.9 KB
  • 大小: 14.4 KB
  • 大小: 7 KB
  • 大小: 25.8 KB
  • 大小: 52.8 KB
1
0
分享到:
评论
2 楼 Cb123456 2015-06-01  
util198 写道
个人觉得你应该去了解下jvm的垃圾回收,为什么需要垃圾回收,jvm是如何进行垃圾回收的,垃圾回收的一些算法,最后可以对现在存在的垃圾回收器进行了解

好的
1 楼 util198 2015-06-01  
个人觉得你应该去了解下jvm的垃圾回收,为什么需要垃圾回收,jvm是如何进行垃圾回收的,垃圾回收的一些算法,最后可以对现在存在的垃圾回收器进行了解

相关推荐

Global site tag (gtag.js) - Google Analytics