前言:
现在小伙伴们对“java的finalize方法”都比较关怀,兄弟们都需要了解一些“java的finalize方法”的相关文章。那么小编在网摘上搜集了一些有关“java的finalize方法””的相关知识,希望各位老铁们能喜欢,你们一起来学习一下吧!Object类的finalize的用法:
马克-to-win:java当中有个垃圾回收机制,具体说,就是当一些对象被创建使用之后若不再使用的话{比如(i)对象被置成null.(ii)局部对象(无需置成null)当程序运行到右大括号.(iii)匿名对象刚用完},就会变成垃圾占用空间,JAVA的自动垃圾回收(gc)线程会在适当的时候自动运行,回收内存。马克-to-win:再具体一点,对象被创建之后,垃圾回收(gc)系统就开始跟踪这个对象的使用情况。垃圾回收系统采用有向图的方式:开始时对象一定是可达的,刚把它置为 null时,它也就变成了不可达的了,这时就是所谓的垃圾。垃圾回收系统就会回收这些内存空间。马克-to-win:回收之前,先调用该对象的 finalize方法。让其做一些最后的收尾工作。见下例,当p1 = null;时,Java的垃圾回收线程会在适当时间点回收p1对象占据的内存空间。马克-to-win:回收之前,首先调用p1的finalize()。但是sun公司不保证finalize方法会被及时地自动执行。所以我们加了一句,System.gc ();建议系统回收一下垃圾。gc代表garbage collection(垃圾回收),finalize方法就被执行了。
马克- to-win:马克 java社区:防盗版实名手机尾号: 73203。
例2.1.4
class PersonMark_to_win {
String name;
public PersonMark_to_win(String n) {
name = n;
}
public void finalize() {
System.out.println(name + " 在进行finalize");
}
}
public class Test {
public static void main(String[] args) throws InterruptedException {
PersonMark_to_win p1 = new PersonMark_to_win("张三");
PersonMark_to_win p2 = new PersonMark_to_win("李四");
p1 = null;
// p2 = null;
System.gc();
// Thread.sleep(3000);//如果发现gc不执行,就运行一下sleep
}
}
输出结果:
张三 在进行finalize
例2.1.4_a
class PersonMark_to_win {
String name;
public PersonMark_to_win(String n) {
name = n;
}
public void finalize() {
System.out.println(name + " 在进行finalize");
}
void test(){
PersonMark_to_win pp1 = new PersonMark_to_win("张三jubu");
篇幅有限更多请见扩展链接:
标签: #java的finalize方法