Java中的垃圾回收机制

来源:互联网 发布:linux 删除目录 编辑:程序博客网 时间:2024/05/22 12:27

*/

堆内存中存在垃圾回收机制:只会自动清理new分配出来的那些无用对象占用的内存资源。

finalize()用来释放对象的特殊内存,finalize()是超类Object的一个方法,使用finalize()需要记住以下几点:

         1.对象可能不被垃圾回收

         2.垃圾回收并不等于“析构”

         3.垃圾回收只与内存有关(垃圾回收器负责释放对象占据的所有内存,无论对象是如何创建的)

 

*/



//finalize()案列

public class garbage_collection {
boolean checkedOut=false;
garbage_collection(boolean checkedOut){
this.checkedOut=checkedOut;
}
void checkIn(){
checkedOut=false;
}
@Override
protected void finalize(){
if(checkedOut)
System.out.println("垃圾被回收了");
try {
//重新调用父类Object中的finalize()方法;
super.finalize();
} catch (Throwable e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
public static void main(String[] args) {
garbage_collection novel=new garbage_collection(true);
novel.checkIn();
new garbage_collection(true);
System.gc();
}


}
0 0
原创粉丝点击