在Java中,final、finally和finalize

在Java中,finalfinallyfinalize是三个不同的概念,它们有着各自独特的用途和语法。以下是对它们的详细解释:

final

final关键字可以用来修饰类、方法和变量。

  • 修饰类:表示该类不能被继承。

    public final class MyClass {// 类内容
    }// 下面的代码会报错,因为 MyClass 是 final 类,不能被继承
    // public class SubClass extends MyClass {
    // }
    
  • 修饰方法:表示该方法不能被重写。

    public class MyClass {public final void myMethod() {// 方法内容}
    }public class SubClass extends MyClass {// 下面的代码会报错,因为 myMethod 是 final 方法,不能被重写// public void myMethod() {// }
    }
    
  • 修饰变量:表示该变量的值一旦被赋值,就不能再改变。

    public class MyClass {public static final int MY_CONSTANT = 10;public void myMethod() {final int localVar = 5;// localVar = 10; // 这行代码会报错,因为 localVar 是 final 的,不能被修改}
    }
    

finally

finally关键字用于定义一个代码块,这个代码块始终会被执行,不论是否发生异常。它通常与trycatch块一起使用,用于保证某些清理操作得以执行。

public class MyClass {public static void main(String[] args) {try {// 可能会抛出异常的代码int result = 10 / 0;} catch (ArithmeticException e) {System.out.println("捕获到异常: " + e.getMessage());} finally {System.out.println("无论是否发生异常,都会执行这里");}}
}

finalize

finalize方法是由垃圾收集器在对象被回收之前调用的方法。它用于进行垃圾回收前的清理操作。然而,由于不确定垃圾回收器何时会执行,finalize的使用不被推荐,现在已被弃用(从Java 9开始,finalize方法被标记为弃用)。

public class MyClass {@Overrideprotected void finalize() throws Throwable {try {// 清理操作} finally {super.finalize();}}
}

总结

  • final:用于声明常量、不可继承的类和不可重写的方法。
  • finally:用于保证某些代码块始终被执行。
  • finalize:用于在对象被垃圾回收之前进行清理操作,但现在已被弃用。

了解这些关键字及其用途可以帮助你在编写Java代码时做出更好的设计选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/860776.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis之优惠券秒杀

文章目录 全局ID生成器添加优惠券实现优惠券秒杀下单超卖问题悲观锁和乐观锁相关文章乐观锁执行逻辑乐观锁解决超卖问题 一人一单功能超卖问题相关文章一人一单执行逻辑代码实现集群模式下锁失效 分布式锁基于Redis的分布式锁Redis实现分布式锁流程实现分布式锁初级版本分布式锁…

RabbitMQ(消息队列)

RabbitMQ 它是消息中间件,是在消息的传输过程中保存消息的容器,实现应用程序和应用程序之间通信的中间产品。目前主流消息队列通讯协议是AMQP(二进制传输,支持多种语言)、JMS(HTTP传输,只支持J…

20240626(26.3) 财经要闻汇总

重点关注 ► 李强:我们注重固本培元,增强经济发展的基础支撑能力,长短结合、标本兼治打好政策“组合拳”,扎实推动高质量发展。坚持把新技术新产业的发展特征、中国的国情特点及各个地方的优势特色结合起来,在提升创新…

要离职了,记录一下个人在用的 Mac 应用

大家好,我是楷鹏。 通用 飞书 说起来不信,第一个推荐的是【飞书】,飞书是目前用过最舒服的项目管理应用了。 单拎出来一个飞书文档,功能和体验远超市面上腾讯文档、石墨文档、语雀等等。 现在飞书还支持个人版,No…

【系统架构设计师】六、信息系统基础知识(定义|分类|企业信息化系统|生命周期|建设原则|开发方法)

目录 一、信息系统的定义 二、信息系统的分类 三、企业使用的信息化系统 四、信息系统的生命周期 五、信息系统建设原则 六、信息系统的开发方法 6.1 结构化方法 6.2 原型法 6.3 构件化开发方法 6.4 面向服务的方法 6.5 面向对象的方法 6.6 敏捷方法 历年真题考情&#x…

还是国产大模型靠谱!这里有一个OpenAI API用户特别搬家计划

近日,一场风波在科技圈引起了广泛的关注。6月25日凌晨,OpenAI向大量开发者发送邮件,通知他们:“您的组织有流量来自来OpenAl目前不支持的地区。从7月9日起,我们将采取额外措施,停止OpenAI不支持的国家和地区…

iOS开发者模式自带弱网测试工具

弱网测试的思路 弱网功能测试:2G/3G/4G、高延时、高丢包 无网状态测试:断网功能测试、本地数据存储 用户体验关注:响应时间、页面呈现、超时文案、超时重连、安全及大流量风险 网络切换测试:WIFI → 4G/3G/2G → 网多状态切换…

①分析胃癌组蛋白脱乙酰酶HDS模型-配对转录组差异

目录 HDS评分构建 ①数据加载 ②评分计算 做样本及评分展示图 ①数据处理 ②进行作图 分析配对的单细胞及转录组胃癌数据的 HDS评分,数据源于gastric-cancer - GitCode①胃癌单细胞和配对转录组揭示胃肿瘤微环境(文献和数据)_代码笔记:处理迄今为止最大的单细胞胃癌数…

Java OA系统通知公告模块

### 使用Spring Boot实现OA通知公告模块 使用Spring Boot框架实现一个支持多种形式公告发布、设置发布时间和有效期,以及公告发布后推送通知的模块。 #### 项目结构 结构组织项目: OA_Notification_Module/ ├── src/ │ ├── main/ │ │ …

计算机相关专业讨论

在2024年高考结束后,数百万高三学子正站在人生的十字路口,面对着选择大学专业的重要决策。在众多选项中,计算机相关专业,包括计算机科学与技术、人工智能、网络安全、软件工程等,长期以来被视为“万金油”的选择——它…

java返回前端实体类json数据时忽略某个属性方法

使用情景 日常工作里经常会碰到需要隐藏实体类的某些属性,可以减少返回值的大小,对性能可以有一定的提高,比如像create_time,update_time,is_del等等一些属性没有必要返回前端的。 使用方法 方法一 SpringBoot中忽略实体类中的某个属性不…

贪吃蛇项目GameStart部分:对游戏的初始化

接上一篇文章介绍完需要使用到的WIN32API的相关知识,本篇文章让我们来开始使用他们来创建我们的贪吃蛇欢迎界面以及游戏所需要的地图。 准备工作: 为了后面我们构建贪吃蛇游戏所需要的各项函数便于观察,同时便于我们的函数声明,在…

【源码+文档+调试讲解】企业人才引进服务平台

摘 要 随着信息时代的来临,过去的传统管理方式缺点逐渐暴露,对过去的传统管理方式的缺点进行分析,采取计算机方式构建企业人才引进服务平台。本文通过课题背景、课题目的及意义相关技术,提出了一种企业信息、招聘信息、应聘信息等…

数据仓库架构设计

数据仓库架构设计是为了有效地收集、存储、处理和分析大规模数据,从而支持商业智能和数据分析活动。一个良好的数据仓库架构需要考虑数据源的多样性、数据存储的结构化、数据处理的高效性和数据分析的灵活性。以下是数据仓库架构设计的详细介绍。 数据仓库架构的层…

Python-爬虫 下载天涯论坛帖子

为了爬取的高效性,实现的过程中我利用了python的threading模块,下面是threads.py模块,定义了下载解析页面的线程,下载图片的线程以及线程池 import threading import urllib2 import Queue import re thread_lock threading.RL…

探索macOS原版镜像ISO的下载之道

作为一名iOS开发工程师,我们与macOS系统的关系可谓密不可分。macOS不仅是我们的开发工具的运行平台,也是我们进行日常工作和娱乐的重要场所。因此,保持macOS系统的更新和稳定性至关重要。本文将带领大家了解如何下载macOS原版镜像ISO&#xf…

300 KVA(240kW、180KVAR)系列负载组

交流 固定式/永久式 电阻式和电抗性 300 KVA(240kW、180KVAR) 480 伏交流电 60赫兹 这是一款紧凑、多功能的 300 KVA 固定/永久负载组,用于测试备用发电机和地面电源装置。负载组可用于测试在 480V 电压下最大 300KVA 的任何负载。…

可穿戴式手持气象仪

TH-SQ17在快节奏的现代生活中,我们越来越依赖各种智能设备来辅助我们的决策和行动。其中,气象信息的重要性不言而喻,它不仅关系到我们的出行安全,更影响着我们的日常生活安排。如今,一款革命性的产品——可穿戴式手持气…

新能源发电乙级资质所需办理标准

企业资历与信誉: 必须具有独立企业法人资格。社会信誉良好,注册资本不少于100万元人民币。 技术条件: 专业技术人员配置齐全、合理,数量需满足资质标准要求。主要技术负责人或总工程师应具有大学本科以上学历、10年以上设计经历&a…

Qt 实战(6)事件 | 6.1、事件机制

文章目录 一、事件1、基本概念2、事件描述3、事件循环4、事件分发4.1、QApplication::notify()4.2、QObject::event() 5、事件传递6、事件处理器 前言: Qt 框架中的事件机制(Event Mechanism)是一种核心功能,它允许应用程序以事件…