java中finalize()方法

java中finalize()方法finalize 垃圾回收机器 GarbageColle 也叫 GC 垃圾回收器主要有一下特点 当对象不再被程序所使用的时候 垃圾回收器将会将其回收垃圾回收是在后台运行的 我们无法命令垃圾回收器马上回收资源 但是我们可以告诉他可以尽快回收资源 System gc 和 Runtime getRuntime gc 垃圾回收器在回收某个对象的时候 首先会调用该对象的 finalize 方法 GC 主要针对堆内存单例模式的缺点 finalize 是 Object 里面的一个方法 当一个堆

finalize

垃圾回收机器(Garbage Collection),也叫GC,垃圾回收器主要有一下特点:

  • 当对象不再被程序所使用的时候,垃圾回收器将会将其回收
  • 垃圾回收是在后台运行的,我们无法命令垃圾回收器马上回收资源,但是我们可以告诉他可以尽快回收资源(System.gc()和Runtime.getRuntime().gc())
  • 垃圾回收器在回收某个对象的时候,首先会调用该对象的finalize()方法
  • GC主要针对堆内存
  • 单例模式的缺点

finalize()是Object里面的一个方法,当一个堆空间中的对象没有被栈空间变量指向的时候,这个对象会等待被java回收:jdk里面是这样实现的:

protected void finalize() throws Throwable { 
    } } 

在这里插入图片描述
源码中显示的@Deprecated(since="9")的意思就是说在jdk9以后这个方法就过时了(有其他的方法代替),但还是可以试验下…

测试代码如下:

public class testFinalize { 
    public static void main(String[] args){ 
    Person p = new Person(); p = null;//此时堆当中的Person对象就没有变量指向了,就变成了垃圾,等到垃圾回收机制调用的finalize()的时候会输出 //那句话 } } class Person { 
    protected void finalize() throws Throwable{ 
    System.out.println("我快死了!!!"); } } 

测试了几次,垃圾回收机制都没有启动(这点垃圾她真的看不上)。咱们程序员也不能强制垃圾回收器启动,但是可以适当建议她启动,毕竟人家傲娇得很呢嘛,下面这代码建议她启动(增加垃圾回收器启动的概率)。

public class testFinalize { 
    public static void main(String[] args){ 
    Person p = new Person(); p = null; System.gc(); } } class Person { 
    protected void finalize() throws Throwable{ 
    System.out.println("我快死了!!!"); } } 

在这里插入图片描述

你看看,你看看,人家还是不理你,看来得拿出点正当的手段了(就好比追女孩子一样,追不到,可以采取一些正当的手段,比如买束花什么的,会加分的吧…咱程序员也懂浪漫~)。改为如下代码:

public class testFinalize { 
    public static void main(String[] args){ 
    Person p = new Person(); //送点花 for(int i = 0 ; i< 1000; i++){ 
    p = null; } System.gc();//增加垃圾回收器启动的概率 } } class Person { 
    protected void finalize() throws Throwable{ 
    System.out.println("我快死了!!!"); } } 

在这里插入图片描述

现在就出来了…如果没出来可以把循环增加一下~

看来还是使点手段好用啊!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/211369.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午10:35
下一篇 2026年3月18日 下午10:36


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号