首页> 资讯> 详情

环球讯息:Java基础Object类的finalize方法

2023-01-06 10:59:32 来源:

1、在Object类中的源代码:

protectedvoidfinalizethrowsThrowable{}

GC:负责调用finalize方法。


【资料图】

2、finalize方法只有一个方法体,里面没有代码,而且这个方法是protected修饰的。

3、这个方法不需要程序员手动调用,JVM的垃圾回收器负责调用这个方法。

不像equalstoString,equals和toString方法是需要你写代码调用的。

finalize只需要重写,重写完将来自动会有程序来调用。

4、finalize方法的执行时机:

当一个java对象即将被垃圾回收器回收的时候,垃圾回收器负责调用

finalize方法。

5、finalize方法实际上是SUN公司为java程序员准备的一个时机,垃圾销毁时机。

如果希望在对象销毁时机执行一段代码的话,这段代码要写到finalize方法当中。

6、静态代码块的作用是什么?

static{…}

静态代码块在类加载时刻执行,并且只执行一次。

这是一个SUN准备的类加载时机。

finalize方法同样也是SUN为程序员准备的一个时机。

这个时机是垃圾回收时机。

7、提示:

java中的垃圾回收器不是轻易启动的,

垃圾太少,或者时间没到,种种条件下,

有可能启动,也有可能不启动。

示例代码:

publicclassObjectTest06{publicstaticvoidmain(String[]args){/*for(inti=0;i<1000000;i++){personp=newperson;p=null;}*/for(inti=0;i<1000;i++){personp=newperson;p=null;//有一段代码可以建议垃圾回收器启动。if(i%50==0){System.gc;//建议启动垃圾回收器。(只是建议,可能不启动,也可能启动。启动的概率高了一些。)}}}}//项目开发中有这样的业务需求:所有对象在JVM中被释放的时候,请记录一下释放时间!!!//记录对象被释放的时间点,这个负责记录的代码写到哪里?//写到finalize方法中。classperson{//重写finalize方法//Person类型的对象被垃圾回收器回收的时候,垃圾回收器负责调用:p.finalize;protectedvoidfinalizethrowsThrowable{System.out.println(this+"启动JVM销毁垃圾!");}}

运行结果:

关键词:

上一篇:世界观点:全国开展涉疫药品和医疗用品稳价保质专项行动
下一篇:焦点速讯:惠发食品(603536)1月5日主力资金净卖出279.46万元