阐述final、finally、finalize的区别

2023-05-16

- final:修饰符(关键字)有三种用法:如果一个类被声明为final,意味着它不能再派生出新的子类,即不能被继承,因此它和abstract是反义词。将变量声明为final,可以保证它们在使用中不被改变,被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取不可修改。被声明为final的方法也同样只能使用,不能在子类中被重写。

 
- finally:通常放在try…catch…的后面构造总是执行代码块,这就意味着程序无论正常执行还是发生异常,这里的代码只要JVM不关闭都能执行,可以将释放外部资源的代码写在finally块中。 


- finalize:Object类中定义的方法,Java中允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在销毁对象时调用的,通过重写finalize()方法可以整理系统资源或者执行其他清理工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

阐述final、finally、finalize的区别 的相关文章

  • Java方法性能中使用final关键字? [复制]

    这个问题在这里已经有答案了 是否使用final在方法参数中允许编译器或运行时环境更快地工作 例如 如果您有一个变量要传递给一个您知道不会被修改并按原样使用的方法 那么声明它是否更有效final 例子 第一种方法应该比第二种方法更快 publ
  • 将私有方法设为最终方法?

    将私有方法设为final有好处吗 这会提高性能吗 我认为 private final 没有多大意义 因为私有方法不能被重写 因此 方法查找应该与使用 Final 时一样高效 将私有辅助方法设置为静态 如果可能 会更好吗 最好用什么 priv
  • 在 Java 中对变量使用 Final 是否可以改善垃圾回收?

    今天我和同事们讨论了finalJava 中的关键字可改善垃圾收集 例如 如果您编写如下方法 public Double doCalc final Double value final Double maxWeight 1000 0 fina
  • 为什么我仍然可以更改这个最终变量? [复制]

    这个问题在这里已经有答案了 If name被宣布final 为什么我还能打电话name append输出是 shreya 我认为最终变量一旦赋值就不能更改 public class Test1 final static StringBuil
  • 如何在Java中扩展final类

    这是我现在面临的实际问题 我有课 比方说Foo这个类定义了一个名为的方法getBar返回一个Bar实例 班上Bar被定义在里面Foo并且 并 被声明public static final 我想做的是定义一个类MyFoo延伸Foo但我也想延长
  • 最终的定义不明确吗?

    首先是一个谜题 下面的代码打印什么 public class RecursiveStatic public static void main String args System out println scale 5 private st
  • SerialPort 的 Finalize() 在 GC.SuppressFinalize() 之后仍然调用

    我正在努力使用SerialPort在 C 中 发现 NET 中的串行端口 API 自 2010 年以来就有错误 我结合了 中制作的补丁这篇博文 http zachsaw blogspot ca 2010 07 serialport ioex
  • 为什么 Finalize() 仅在创建新对象后执行,而不是在调用 gc() 后执行?

    调用 gc 时 finalize 不应该立即执行吗 输出结果的顺序有点不太令人信服 class Test int x 100 int y 115 protected void finalize System out println Reso
  • .NET 会停止调试运行finally 块中的代码吗?

    好吧 我已经读到 并了解到 finally 块并不总是执行其代码 即使除了拔掉插头之外 仅供参考有关更多信息 请参阅尝试抓住最后的问题 https stackoverflow com questions 3304308 try catch
  • 最终瞬态字段的序列化/反序列化

    In this https stackoverflow com questions 2968876 final transient fields and serialization问题说final transient序列化后字段不能设置为任
  • 变量 r 可能尚未初始化

    有一个非常简单的程序 public class A public static void main String p final Runnable r new Runnable public void run System out prin
  • 自由终端时间、积分目标和微分方程作为约束

    我正在尝试解决一个最优控制问题 该问题涉及最小化具有固定状态但自由终端时间的积分目标 这是一个相对简单的问题 可以通过解析来解决 Gekko 的解决方案与解析不符 我不确定我做错了什么 我遵循了几个 Gekko 示例来解决这个问题 任何帮助
  • 为什么java.lang.Object中的finalize()方法是“受保护的”?

    出于好奇 为什么是finalize 方法的访问修饰符被设为protected 为什么不能是public 有人可以向我解释一下这背后的具体原因吗 另外 我也了解到finalize 方法仅被调用一次 如果我在程序内部调用它两次 会发生什么 垃圾
  • 如果我在命令行中输入Ctrl-C,Java中的finally块仍然会执行吗?

    我正在运行我的 Java 应用程序cmd exe在Windows中 如果我通过按 Ctrl C 强制停止该进程 并且当时的代码正在运行try块 将finally块仍然被执行吗 在我的测试中 似乎是的 它被执行了 确保某些代码运行以响应操作系
  • 在groovy中将变量标记为final是否有意义?

    我想知道变量如何标记为final由 Groovy 解释 在 1 8 0 1 8 1 中 我知道这在 Java 中是有意义的 并且可以提高性能 当然还有助于避免愚蠢的错误 我想了解如果final可以帮助java编译器优化用Groovy编写的程
  • 在java中将对象声明为final

    有人可以澄清以下代码的意义吗 class A int i 10 public void setI int b i b public int getI return i class Test public static void main S
  • Java中的静态最终变量[重复]

    这个问题在这里已经有答案了 可能的重复 私有最终静态属性与私有最终属性 https stackoverflow com questions 1415955 private final static attribute vs private
  • 匿名内部类显示不正确的修饰符

    据我了解 以下代码应该打印true作为输出 但是 当我运行这段代码时 它正在打印false 来自 Java 文档15 9 5 匿名类 https docs oracle com javase specs jls se8 html jls 1
  • Java继承,扩展类如何影响实际类

    我正在查看 Sun 认证学习指南 其中有一段描述了最终修饰符 它说 如果程序员可以自由地扩展我们所知的 String 类文明 它可能会崩溃 他什么意思 如果可以扩展 String 类 我是否不会有一个名为 MyString 的类继承所有 S
  • Python 中的“finally”总是执行吗?

    对于Python中任何可能的try finally块 是否保证finally块总是会被执行吗 例如 假设我在except block try 1 0 except ZeroDivisionError return finally print

随机推荐

  • JAVA语言之三色排序

    有一个只由0 xff0c 1 xff0c 2三种元素构成的整数数组 xff0c 请使用交换 原地排序而不是使用计数进行排序 给定一个只含0 xff0c 1 xff0c 2的整数数组A 及它的大小 xff0c 请返回排序后的数组 保证数组大小
  • Linux 服务器下载并安装jdk8 学习教程

    获得一台linux服务器 要在linux下安装jdk xff0c 首先你得先有一台linux服务器 xff0c 虚拟机或者租一台都可以 yum安装jdk xff08 力荐 xff09 在linux上使用yum安装是非常粗暴无脑的 xff0c
  • JAVA语言之有序矩阵查找

    现在有一个行和列都排好序的矩阵 xff0c 请设计一个高效算法 xff0c 快速查找矩阵中是否含有值x 给定一个int矩阵mat xff0c 同时给定矩阵大小n xm 及待查找的数x xff0c 请返回一个bool值 xff0c 代表矩阵中
  • JAVA语言之最短子数组长度

    对于一个数组 xff0c 请设计一个高效算法计算需要排序的最短子数组的长度 给定一个int数组A 和数组的大小n xff0c 请返回一个二元组 xff0c 代表所求序列的长度 原序列位置从0开始标号 若原序列有序 xff0c 返回0 保证A
  • JAVA语言之相邻两数最大差值

    有一个整形数组A xff0c 请设计一个复杂度为O n 的算法 xff0c 算出排序后相邻两数的最大差值 给定一个int数组A 和A 的大小n xff0c 请返回最大的差值 保证数组元素多于1个 测试样例 xff1a 1 2 5 4 6 5
  • Spring MVC 流程图

    Spring MVC工作流程图 图一 图二 Spring工作流程描述 1 用户向服务器发送请求 xff0c 请求被Spring 前端控制Servelt DispatcherServlet捕获 xff1b 2 DispatcherServle
  • 输出单层结点之程序员面试经典

    题目描述 对于一棵二叉树 xff0c 请设计一个算法 xff0c 创建含有某一深度上所有结点的链表 给定二叉树的根结点指针TreeNode root xff0c 以及链表上结点的深度 xff0c 请返回一个链表ListNode xff0c
  • java中没有2进制的数据类型,对二进制的操作,需要使用共三种操作符

    lt lt 左移位操作符 gt gt 右移位操作符 gt gt gt 无符号右移操作符 使用左移时 xff0c 数会变大 xff0c 很多时间 xff0c 用来代替 乘方 的操作 比如 2的平方 61 2 2 61 4 61 2 lt lt
  • 面向对象的特征有哪些方面

    需要学习资料的 43 微信公众号 学习资源后台找我 本人比较忙 我看到了会在后台帮你 xff0c 谢谢关注啦 抽象 xff1a 抽象是将一类对象的共同特征总结出来构造类的过程 xff0c 包括数据抽象和行为抽象两方面 抽象只关注对象有哪些属
  • 句子的逆序

    对于一个字符串 xff0c 请设计一个算法 xff0c 只在字符串的单词间做逆序调整 xff0c 也就是说 xff0c 字符串由一些由空格分隔的部分组成 xff0c 你需要将这些部分逆序 给定一个原字符串A 和他的长度 xff0c 请返回逆
  • 字符串移位

    对于一个字符串 xff0c 请设计一个算法 xff0c 将字符串的长度为len的前缀平移到字符串的最后 给定一个字符串A 和它的长度 xff0c 同时给定len xff0c 请返回平移后的字符串 测试样例 xff1a 34 ABCDE 34
  • 拼接最小字典序

    对于一个给定的字符串数组 xff0c 请找到一种拼接顺序 xff0c 使所有小字符串拼接成的大字符串是所有可能的拼接中字典序最小的 给定一个字符串数组strs xff0c 同时给定它的大小 xff0c 请返回拼接成的串 测试样例 xff1a
  • go语言时间类型和时间戳

    时间类型 获取当地时间 fmt span class token punctuation span span class token function Println span span class token punctuation sp
  • 是否可以从一个静态(static)方法内部发出对非静态(non-static)方法的调用?

    不可以 xff0c 静态方法只能访问静态成员 xff0c 因为非静态方法的调用要先创建对象 xff0c 在调用静态方法时可能对象并没有被初始化
  • GC是什么?为什么要有GC?

    GC 是垃圾收集的意思 xff0c 内存处理是编程人员容易出现问题的地方 xff0c 忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃 xff0c Java 提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的 xf
  • 空格替换

    请编写一个方法 xff0c 将字符串中的空格全部替换为 20 假定该字符串有足够的空间存放新增的字符 xff0c 并且知道字符串的真实长度 小于等于1000 xff0c 同时保证字符串由大小写的英文字母组成 给定一个string iniSt
  • 合法括号序列判断

    对于一个字符串 xff0c 请设计一个算法 xff0c 判断其是否为一个合法的括号串 给定一个字符串A 和它的长度n xff0c 请返回一个bool值代表它是否为一个合法的括号串 测试样例 xff1a 34 34 6 返回 xff1a tr
  • 最长无重复字符子串

    对于一个字符串 请设计一个高效算法 xff0c 找到字符串的最长无重复字符的子串长度 给定一个字符串A 及它的长度n xff0c 请返回它的最长无重复字符子串长度 保证A中字符全部为小写英文字符 xff0c 且长度小于等于500 测试样例
  • 列出一些你常见的运行时异常(非检查异常)?

    ArithmeticException xff08 算术异常 xff09 ClassCastException xff08 类转换异常 xff09 IllegalArgumentException xff08 非法参数异常 xff09 In
  • 阐述final、finally、finalize的区别

    final xff1a 修饰符 xff08 关键字 xff09 有三种用法 xff1a 如果一个类被声明为final xff0c 意味着它不能再派生出新的子类 xff0c 即不能被继承 xff0c 因此它和abstract是反义词 将变量声