【JavaSE】finalize方法基本使用

简介: 【JavaSE】finalize方法基本使用

finalize 方法

1) 当对象被回收时,系统自动调用该对象的 finalize 方法。子类可以重写该方法,做一些释放资源的操作。
2) 什么时候被回收:当某个对象没有任何引用时,则 jvm 就认为这个对象是一个垃圾对象,就会使用垃圾回收机制来销毁该对象,在销毁该对象前,会先调用 finalize 方法。
3) 垃圾回收机制的调用,是由系统来决定(即有自己的 GC 算法), 也可以通过 System.gc() 主动触发垃圾回收机制

public class Finalize_ {
    public static void main(String[] args) {

        Car bmw = new Car("宝马");
        //这时 car 对象就是一个垃圾,垃圾回收器就会回收(销毁)对象,在销毁对象前,会调用 finalize 方法
        //程序员就可以在 finalize 方法中,写自己的业务逻辑代码(如释放资源:数据库连接,或者打开的文件名..)
        //如果程序员不重写 finalize,那么就会调用 object 类的 finalize,即默认处理
        //如果程序员重写了 finalize,就可以实现自己的逻辑
        bmw = null;
        System.gc();//主动调用垃圾回收器
        System.out.println("程序退出了...");

    }
}

class Car{
    private String name;

    public Car(String name) {
        this.name = name;
    }
    //重写 finalize 方法
    @Override
    protected void finalize() throws Throwable {
        System.out.println("我们销毁了" + name + "汽车");
        System.out.println("释放了某些资源...");
    }
}
  • System.gc(); 执行之后代码马上执行下面的输出语句,所以先输出 “程序退出了...

在这里插入图片描述

  • 提示: 我们在实际开发中,几乎不会运用 finalize , 所以更多就是为了应付面试。
目录
相关文章
|
运维 安全 Cloud Native
阿里云云安全中心介绍_态势感知_主机安全_漏洞扫描
阿里云云安全中心介绍_态势感知_主机安全_漏洞扫描,阿里云云安全中心(原态势感知)是一个实时识别、分析、预警安全威胁的服务器主机安全管理系统,云安全中心功能支持漏洞扫描与修复、基线检查、防勒索、防病毒、防篡改、威胁检测模型等功能,云安全中心基础版免费、防病毒班432元一年、高级版优惠价969元一年,还有企业版和旗舰版可选
760 0
|
前端开发 JavaScript BI
轻松搞定vue3+Pinia-2-修改state-patch-actions
轻松搞定vue3+Pinia-2-修改state-patch-actions
405 0
|
机器学习/深度学习 算法
【数据结构与算法】堆排序(向下和向上调整)、TOP-K问题(超详细解读)(下)
【数据结构与算法】堆排序(向下和向上调整)、TOP-K问题(超详细解读)(下)
233 0
|
12月前
|
前端开发 C# Windows
解决Gradle下载缓慢的问题,将-bin改为-all
【11月更文挑战第15天】PropertyGrid 是一种用户界面组件,允许用户直观地查看和编辑对象属性。WPF 中虽无内置控件,但可通过组合 Expander 和 DataGrid 实现基本功能,或使用 PropertyTools 等第三方库获得更强大的功能。
260 1
|
SQL 安全 JavaScript
告别Web安全小白!Python实战指南:抵御SQL注入、XSS、CSRF的秘密武器!
【9月更文挑战第12天】在Web开发中,安全漏洞如同暗礁,尤其对初学者而言,SQL注入、跨站脚本(XSS)和跨站请求伪造(CSRF)是常见挑战。本文通过实战案例,展示如何利用Python应对这些威胁。首先,通过参数化查询防止SQL注入;其次,借助Jinja2模板引擎自动转义机制抵御XSS攻击;最后,使用Flask-WTF库生成和验证CSRF令牌,确保转账功能安全。掌握这些技巧,助你构建更安全的Web应用。
229 5
|
自然语言处理 监控 搜索推荐
阿里云百炼知识检索应用评测:搭建个人/企业专属智能问答助手
阿里云百炼知识检索应用评测:搭建个人/企业专属智能问答助手
861 3
|
测试技术 API Windows
Windows 如何使用 cURL 命令?快速上手
在工作流程中,为了快速验证 API 接口有效性,团队成员经常转向直接执行 cURL 命令的方法。这种做法不仅节省时间,而且促进了团队效率的提升。对于使用 Windows 系统的用户来说,这里有一套详细的操作指南来执行 cURL 命令。
|
开发工具 Ubuntu Linux
vim中函数跳转的功能实现
该文介绍了如何在Vim中实现函数跳转功能,通过安装`ctags`插件来完成。在CentOS/OpenEuler使用`sudo yum install ctags`,Ubuntu系统用`sudo apt-get install ctags`安装ctags,然后在源代码目录下运行`ctags -R .`生成tags文件。在Vim中,使用`Ctrl + ]`跳转到定义处,`Ctrl + t`返回原位置。文章还提到跨文件跳转及`tags`文件的更新与配置Vim的相关信息。
335 2
|
安全 Linux 虚拟化
Windows更新【bug】
Windows更新【bug】
652 0
|
JavaScript 数据安全/隐私保护
vue项目实战之点击小眼睛实现input密码框内容显示与隐藏
vue项目实战之点击小眼睛实现input密码框内容显示与隐藏
vue项目实战之点击小眼睛实现input密码框内容显示与隐藏
下一篇
开通oss服务