首页 > 其他分享 >final、finally、finalize 有什么区别?

final、finally、finalize 有什么区别?

时间:2023-08-22 10:31:30浏览次数:28  
标签:finalize 代码 finally 用于 方法 final

finalfinallyfinalize 是在 Java 中用于不同目的的关键字,它们的作用和使用方式有所不同:

  1. final:
  • final 是一个关键字,可以用于类、方法和变量。当用于类时,表示这个类不能再被继承(即不能有子类)。当用于方法时,表示这个方法不能被子类重写。当用于变量时,表示这个变量是一个常量,一旦赋值后就不能再修改。
  • 在类中,final 可以用于定义不可变的常量字段。
  • 在方法中,final 可以用于防止方法被子类重写,从而保护方法的逻辑不被修改。
  • 在变量中,final 可以用于声明一个只能赋值一次的常量。
  1. finally:
  • finally 是一个代码块,用于定义一些无论是否发生异常都必须执行的代码。不管是否有异常抛出,finally 中的代码都会被执行。
  • 通常情况下,finally 常用于资源的释放,例如关闭文件、数据库连接等。因为无论代码是否发生异常,这些资源都应该被正确释放。
  1. finalize:
  • finalize 是一个方法,定义在 java.lang.Object 类中,用于在对象被垃圾回收之前调用。这个方法允许对象在被销毁之前执行一些清理操作。
  • 然而,需要注意的是,finalize 方法在现代 Java 中已经不推荐使用。Java 提供了更强大、可控的资源管理和垃圾回收机制,如自动资源管理(try-with-resources)和 AutoCloseable 接口。

总结区别:

  • final:关键字,用于限制类、方法或变量的继承、重写或赋值。
  • finally:代码块,用于定义无论是否有异常发生都必须执行的代码。
  • finalize:方法,用于在对象被垃圾回收前执行清理操作,不推荐使用。

标签:finalize,代码,finally,用于,方法,final
From: https://blog.51cto.com/u_16097317/7186472

相关文章

  • C++11新特性——1.4-1.5 final和override
    1.4final原文:https://subingwen.cn/cpp/final/总结:1.final限制某个类不能被继承,或限制某个虚函数不能被重写2.final修饰虚函数或者类3.final关键字写到虚函数或类后面classBase{public:virtualvoidtest(){cout<<"Baseclass.........
  • [JOI 2023 Final] Advertisement 2 题解
    题解JOI王国有\(N\)位居民,从\(1\)到\(N\)编号。居民\(i\)(\(1\lei\leN\))居住在数轴上坐标\(X_i\)处,其影响力为\(E_i\)。同一个坐标可能住了多于一位居民。居民的影响力越高,广告效应也越高,但买书也越谨慎。Rie出版了一本关于信息学的书。为了让更多人购买这本书,她可......
  • k8s finalizers和owner references
    finalizers终结器,存放键的列表,列表内的键为空时资源才可被删除。删除指定了Finalizer的对象时,填充.metadata.deletionTimestamp来标记要删除的对象,返回已接受202状态码使其进入只读状态。#创建包含finalizers的configmapcat<<EOF|kubectlcreate-f-apiVersion:v1kind:......
  • FinalShell有时突然无法连接虚拟机的相关原因和解决方法
    问题描述关闭虚拟机和FinalShell远程工具突然显示连接超时,再没有动别的东西的情况下,没有办法连接上虚拟机问题解决经过查阅相关资料发现:VMWare虚拟机的IP地址时常变化,出现连接不上的情况也是属于正常情况,解决方法如下:1、打开虚拟机,查看IP地址ifconfig2、找到公网地址IP,更......
  • 异步请求返回处理之finally的用途,代码规范摸索【玩转JavaScript】
    前言最近在改动老代码时,发现了一个有趣的现象。对于异步请求返回结果处理中,使用finally做兜底处理,不同的页面并不统一,也就是有的页面使用了,有的页面没使用,没使用的页面增加了额外的失败的处理。所以finally到底要不要统一?本着代码规范化原则的思维,我准备一探究竟。文章速度finally......
  • 第十六节 面向对象进阶(多态&包&final&权限修饰符&代码块)
    今日内容多态包final权限修饰符代码块教学目标能够说出使用多态的前提条件理解多态的向上转型理解多态的向下转型能够知道多态的使用场景包的作用public和private权限修饰符的作用描述final修饰的类的特点描述final修饰的方法的特点......
  • 关于final修饰字段的初始化问题
    一、final修饰【实例变量】1.类下没有【无参的构造方法】时1.定义时显式赋值2.构造方法中赋值(每个构造方法都需要赋值)3.普通初始化块中赋值(静态初始化块不可以)2.类下有【无参的构造方法】时1.定义时显式赋值2.普通初始化块中赋值(静态初始化块不可以)二、final修饰......
  • [JOI 2020 Final] 火事 题解
    题面给定一个长为\(N\)的序列\(S_i\),刚开始为时刻\(0\)。定义\(t\)时刻第\(i\)个数为\(S_i(t)\),那么:\[\left\{\begin{array}{ll}S_0(t)=0\\S_i(0)=S_i\\S_i(t)=\max\{S_{i-1}(t-1),S_i(t-1)\}\end{array}\right.\]共有\(Q\)个询问,每......
  • FinalShell 下载和安装
    安装一、登录hostbuf.com网站跳转按钮点击第一条二、选择Windows下载地址复制粘贴到新的页面,自动开始下载![](https://img2023.cnblogs.com/blog/2913371/202307/2913371-20230730164726988-1684490782.png三、傻瓜式安装,一直点下一步,完成安装连接虚拟机一、打开虚......
  • FinalShell的使用及简介
    FinalShell简介FinalShell是一款国人开发的SSH客户端工具,多平台支持Windows,MacOSX,Linux。主要用于一体化服务器管理,软件支持shell和sftp同屏显示,并同步切换目录,不止如此,而且软件带有命令自动提示,让您的命令输入更加简单、便捷,另外,软件带有加速的功能,可以提高访问服务器的速度......