垃圾内存回收
程序员文章站
2022-05-13 14:41:54
...
今天上午我们老师讲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:
上一篇: Google:搜索引擎的未来是个性化搜索
下一篇: 求一段正则表达式,该怎么处理