小米面试题解析:深入剖析final、finally、finalize的区别

文章详细解释了Java中final用于修饰不可变类、方法和变量,finally用于保证try-catch后的代码执行,而finalize是对象被垃圾回收前的清理方法,但现在已被弃用,推荐使用try-with-resources。
摘要由CSDN通过智能技术生成

大家好,我是你们的小米!今天我要和大家聊一聊在编程中常常让人迷惑的三个词:final、finally 和 finalize。这些词看似相似,但实际上在Java编程中有着截然不同的作用。如果你在面试中遇到相关问题,可千万别慌张,接下来,我将为大家揭开这三个概念的神秘面纱!

final

我们先从final开始。在Java中,final是一个关键字,它可以用于修饰类、方法和变量。那么,不同的修饰对象又代表着什么呢?

final 修饰类:当我们用final修饰一个类时,表示这个类是不可继承的,也就是说其他类不能再去扩展它。这样做的好处是确保类的稳定性和安全性,防止被继承的类在子类中被修改、扩展或者篡改。例如:

final 修饰方法:当我们用final修饰一个方法时,表示这个方法是不可被子类重写的。这在某些情况下是非常有用的,比如一个类中的某个方法已经是最终实现,不希望被子类修改。例如:

final 修饰变量:如果我们用final修饰一个变量,表示这个变量是一个常量,一旦被赋值后就不能再改变。这样的好处是确保变量的值不会意外被修改,增加代码的可读性和安全性。例如:

finally

接下来,我们说说finally。在Java中,finally也是一个关键字,它通常与try-catch结构一起使用。那么,finally到底有什么作用呢?

在异常处理中,我们经常使用try-catch块来捕获并处理异常。有时候,我们希望不管异常是否发生,都能执行一段代码,比如释放资源、关闭文件等。这时候就可以使用finally块。不论是否捕获到异常,finally中的代码都会被执行。例如:

总结一下,finally块是用于保证在任何情况下都执行特定代码的一种机制,尤其在异常处理中尤为重要。

finalize

最后,我们来说说finalize。finalize是Object类中的一个方法,在Java 9以后被标记为过时(deprecated)。那么,这个方法有什么特殊之处呢?

在Java中,每个对象都有一个finalize方法,它是由垃圾回收器在回收对象之前调用的。也就是说,当一个对象即将被回收时,会先调用它的finalize方法,然后才真正回收内存。这个方法允许对象在被销毁之前进行一些清理工作,比如关闭资源、释放连接等。但是,由于finalize方法的调用时机不确定且不可靠,所以它并不适合用于重要的资源管理和清理工作。

从Java 9开始,推荐使用try-with-resources或者手动管理资源(比如使用try-catch-finally块)来替代finalize方法,以确保资源的正确释放和管理。

总结

  • final用于修饰类、方法和变量,分别表示不可继承、不可重写和常量。
  • finally通常与try-catch结构一起使用,用于保证特定代码在任何情况下都会被执行,通常用于资源释放等收尾工作。
  • finalize是Object类中的方法,已经在Java 9后过时,不推荐使用,而是推荐使用try-with-resources来管理资源。

END

希望通过本次的技术分享,大家对final、finally和finalize有了更清晰的认识。编程之路上,遇到困惑,就让我们一起努力,共同成长!如果你觉得这篇分享对你有帮助,欢迎点赞、评论和转发,让更多的小伙伴们一起加入我们,共同进步!感谢大家的支持,我们下期再见!

如有疑问或者更多的技术分享,欢迎关注我的微信公众号“知其然亦知其所以然”!

软件求生
关注 关注
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Java为什么弃用 finalize() 方法?
朝夕
07-23 5723
引言 接上篇文章Object源码分析,我们知道了Java 从 1.0 开始就有了 finalize() 方法,不过这个方法一直被认为是一个糟糕的设计,也是 Java 平台的一个遗留的大“毒瘤”。 垃圾回收器会特别对待覆盖了 finalize() 方法的对象。一般情况下,在垃圾回收期间,一个无法触及的对象会立即被销毁。不过,覆盖了 finalize() 方法的对象会被移动到一个队列里,一个独立的线程...
java finalize 析构_Java弃用finalize()方法?
weixin_32629853的博客
02-13 412
最近,OpenJDK邮件组core-libs-dev里出现了一封邮件,建议弃用Object类的finalize()方法。弃用Object类的方法将会是一件非常不寻常的事情。Java从 1.0开始就有了finalize()方法,不过这个方法一直被认为是一个糟糕的设计,也是Java平台的一个遗留的大“毒瘤”。垃圾回收器会特别对待覆盖了finalize()方法的对象。一般情况下,在垃圾回收期间,一个无法...
Java弃用finalize()方法?
啊啊啊啊2
03-15 867
最近,OpenJDK邮件组core-libs-dev里出现了一封邮件,建议弃用Object类的finalize()方法。\u0026#xD;\n\u0026#xD;\n弃用Object类的方法将会是一件非常不寻常的事情。Java从 1.0开始就有了finalize()方法,不过这个方法一直被认为是一个糟糕的设计,也是Java平台的一个遗留的大“毒瘤”。\u0026#xD;\n\u0026#xD;\...
劲爆:Java 18 正式发布,默认 UTF-8,finalize弃用。。别再乱用了
Java技术栈,分享最主流的Java技术
03-24 1220
上一版:重磅!JDK 17 发布,Oracle 宣布从 JDK 17 开始正式免费。。 JDK 18 正式发布 JDK 17 刚发布半年,JDK 18 又如期而至,JDK 版本号这算是成年了? JDK 18 发布了,栈长继续为大家解读! JDK 18 延续了 JDK 17 开创的免费策略,但,JDK 18~20 不是长期支持版本,注意不要用在生产。 最新 Oracle Java 支持路线图: JDK 18 新特性一览 ID 特性 说明 1 400:UTF-8 by Default 默认
Java 面试题:谈谈 finalfinallyfinalize 有什么不同?
栗筝i的博客
06-21 2676
Java 编程中,finalfinallyfinalize 是三个看似相似但用途截然不同的关键字和方法。理解它们的区别对于编写高质量和健壮的代码至关重要。 final 关键字可用于声明常量、方法和类。用在变量上表示变量不可变,用在方法上表示方法不能被重写,用在类上表示类不能被继承。它在确保程序稳定性和安全性方面起着重要作用。 finally 是异常处理机制的一部分,用于定义在 try 和 catch 块执行后必须执行的代码。无论是否发生异常,finally 块中的代码都会被执行,用于清理资源
高频面试题:final,finally,finalize区别
MrA1ex的博客
10-25 272
-final Final可以用于成员变量(包括方法参数),方法、类。 Final成员 作为变量 变量一旦被初始化便不可改变(对于基本类型,指的是值不变;对于对象类型,指的是引用不变),初始化只可能在两个地方:定义处和构造函数。 作为方法参数 对于基本类型,定义成final参数没有什么意义,因为基本类型就是传值,不会影响调用语句中的变量; 对于对象类型,在方法中如果参数确认不需要改变时,定义成fin...
面试题总结:finalfinallyfinalize区别
华山栈道的博客
10-31 484
这里写目录标题1.final关键字final优势:2. finally3. finalize 1.final关键字 一个基本数据类型声明为final,就只能进行一次赋值(初始化),编译器会自动检查代码,如果需要修改final的初始化,就会编译报错。final声明的引用数据类型,当前引用是不能改变的,但是可以改变引用指向的内存空间的值。final一般和static搭配使用作为常量。 final关键字的三种用法: 1)修饰类:表示该类不能被继承(extends); 2)修饰方法:表示方法不能被重写(overr
Java面试题系列】:Javafinal finally finalize区别
我是月亮呀的博客
06-04 156
按我的个人理解,这个题目本身就问的有点问题,因为这3个关键字之间没啥关系,是相对独立的,我猜想这道题的初衷应该是想了解面试者对Javafinal finally finalize的使用方法的掌握情况,只是因为3个关键字比较像,而成了现在网上流传的题目“Javafinal finally finalize区别”。 既然是想了解面试者对Javafinal finally finalize的使...
剖析经典面试题finalfinallyfinalize
qq_39694454的博客
05-07 204
典型答案 final 可用来修饰类、方法、变量。修饰类是表示不可继承扩展,修饰变量表示不可修改,修饰方法表示不可被重写(override) finallyJava表示代码一定被执行的一直机制。如使用try-finally 或者 try-catch-finally 来进行如关闭JDBC连接或 unlock 锁等动作 finalize 是Object 类的一个方法,设计目的是保证对象在被来垃圾收集前完成特定资源的回收。(finalize机制在JDK9已被标记为 deprecated , 不推荐使用) 问
Java基础面试题解析finalfinallyfinalize与内部类
"Java笔试题相关知识总结,包含finalfinallyfinalize区别,匿名内部类的特性,静态内部类与普通内部类的不同,以及&和&&的运算符区别,HashMap和Hashtable的区别。" 1. final, finally, finalize区别: - ...
Java面试深度解析final,finally,finalize与匿名内部类
"Java面试题, 包含final, finally, finalize区别, 匿名内部类的特性, 静态嵌套类与内部类的差异, 以及&和&&的用法" Java面试中,深入理解语言核心概念至关重要。以下是对给定知识点的详细解释: 1. **final, ...
Java面试深度解析final, finally, finalize与HashMap与Hashtable对比
这篇资料主要涵盖了Java面试中的关键知识点,包括finalfinallyfinalize区别,匿名内部类的特性,静态嵌套类与普通内部类的不同,以及位运算符&和逻辑运算符&&的差异,还有HashMap和Hashtable的比较。...
Java面试深度解析final, finally, finalize与HashMap, Hashtable对比
"Java面试题解析,包括final, finally, finalize区别、匿名内部类特性、静态内部类与普通内部类的差异以及HashMap和Hashtable的对比等核心知识点。" 在Java编程语言中,面试题常常围绕关键概念和技术进行,以下是...
Java面试深度解析final, finally, finalize与集合类对比
"Java经典面试题" 在Java编程语言中,面试题目往往涵盖了许多核心概念和技术,以下是一些常见的Java面试知识点: 1. **finalfinallyfinalize区别**: - `final` 是一个修饰符,用于声明一个类、变量或方法...
Golang笔记_day10
Runing_WoNiu的博客
10-16 313
1、什么是channel,为什么它可以做到线程安全。2、Golang Epoll原理。
牛客小白月赛102:最短?路径(分层bfs)
2301_80718054的博客
10-14 945
来源:牛客网。
面试经典150题刷题记录
m0_47411815的博客
10-16 428
给你两个按排列的整数数组nums1和nums2,另有两个整数m和n,分别表示nums1和nums2中的元素数目。请你nums2到nums1中,使合并后的数组同样按排列。最终,合并后数组不应由函数返回,而是存储在数组nums1中。为了应对这种情况,nums1的初始长度为m + n,其中前m个元素表示应合并的元素,后n个元素为0,应忽略。nums2的长度为n。
高频面试手撕
如风暖阳的博客
10-17 1023
高频面试手撕结构 非算法内容 整理了常见的基础手撕内容
[申请] 准备 2024.10.20
最新发布
m0_74331272的博客
10-20 826
例如,2024年6月的数据表明,Java后端开发者的全国年薪中位数约为124,532元,而在一线城市如上海,这一数字上升至212,160元。不同学校和项目的申请时间线各有不同,但通常硕士及博士项目的申请截止日期可能从10月份持续到次年的3月份。具体时间应参照各目标学校的官方通知。求职资源也十分丰富,常见的渠道包括Google、LinkedIn、GitHub、招聘会等,利用好这些平台可以让你更好地把握工作机会。就像在生活中做选择一样,申请也需要找到最适合自己的项目,并通过对不同机会的优化,提升申请成功率。
写文章

热门文章

  • Dubbo:基本原理机制。 71061
  • Excel:如何算出重复次数。 57760
  • Nginx:启动、停止、重启命令。 57652
  • ZooKeeper之启动、停止服务。 52730
  • 解决方案:枚举类根据key值获取value值。 45295

分类专栏

  • 案例分析 18篇
  • 优化技巧 8篇
  • 软件使用 31篇
  • 工作建议 200篇
  • bug 81篇
  • 编程语言
  • java 48篇
  • python
  • 高级特性
  • JVM 56篇
  • 多线程的艺术 49篇
  • HotSpot 3篇
  • 加密与解密的艺术 1篇
  • 缓存 7篇
  • redis 18篇
  • 消息队列 4篇
  • RabbitMQ 5篇
  • Kafka 1篇
  • 数据库 12篇
  • mysql 20篇
  • Oracle 3篇
  • Postgresql 2篇
  • 搜索
  • Elasticsearch 29篇
  • solr 32篇
  • lucene
  • Spring 13篇
  • SpringMVC 16篇
  • Spring Boot 9篇
  • Spring Cloud 12篇
  • 持久层
  • mybatis 30篇
  • Hibernate 2篇
  • 大数据
  • MongoDB 16篇
  • HBase 1篇
  • 分布式 42篇
  • dubbo 13篇
  • zookeeper 80篇
  • 运维 31篇
  • 软件安装 13篇
  • 安全。 5篇
  • linux 38篇
  • Maven 31篇
  • Tomcat 6篇
  • nginx 4篇
  • Jetty 5篇
  • 杂谈 29篇
  • 源码解析 20篇
  • 微服务 10篇
  • 面试 2篇
  • SSO 1篇
  • 前端 26篇
  • session 6篇
  • highcharts 1篇
  • 微信小程序 3篇
  • 网络 3篇
  • Servlet 11篇
  • Swagger 1篇
  • Shiro 2篇
  • Docker
  • 配置 2篇
  • Netty 3篇

最新评论

  • 手把手教你搭建物联网平台,轻松实现远程设备管理

    2401_87543302: 文章构思巧妙,结构紧凑,既有深度又有广度,读后让人受益匪浅,确实是一篇值得一读的佳作。【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】

  • 别让恶意刷票毁了你的项目,学会这6招防刷技巧!

    普通网友: 写的很详细,感谢博主的分享。【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】

  • 面试官最爱的坑:为什么重写equals时一定要重写hashCode?

    晓破千年: 我不存hash结构对象,不就不用重写hashcode了

  • 学习网络的第一步:全面解析OSI与TCP/IP模型

    普通网友: 支持一下,细节很到位!【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】

  • 分布式事务大揭秘:使用MQ实现最终一致性

    普通网友: 优质好文,博主的文章细节很到位,兼顾实用性和可操作性,期待博主持续带来更多好文【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】

大家在看

  • 记录一次档案服务器的硬盘不够扩容 74
  • 精准助力3C产品获取大单:AI如何赋能电商消费? 560
  • sicp4sqlparmselectjson.py for emedit
  • Adobe图形设计软件 LRC 下载安装使用
  • JVM垃圾回收

最新文章

  • Java 面试高频考点:static 和 final 深度剖析
  • Java多态背后的秘密:动态绑定如何工作?
  • 程序员的选择难题:Java和C++的核心差异解析
2024
10月 14篇
09月 18篇
08月 26篇
07月 22篇
06月 24篇
05月 28篇
04月 25篇
03月 23篇
02月 21篇
01月 25篇
2023年199篇
2022年60篇
2021年20篇
2020年168篇
2019年237篇
2018年452篇
2017年242篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

软件求生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家温州玻璃钢雕塑厂家现代人物玻璃钢雕塑工艺流程德阳玻璃钢广场雕塑价格玻璃钢大鼓雕塑贵阳玻璃钢景观雕塑室内玻璃钢商场美陈北京大型商场美陈厂家供应银川动物玻璃钢雕塑公司河南郑州玻璃钢雕塑彩绘制作厂家仿铜人物玻璃钢雕塑佛山人物玻璃钢卡通雕塑四川通道商场美陈销售企业四川大型玻璃钢雕塑厂人物雕塑玻璃钢黄飞鸿雕塑伊春广场玻璃钢雕塑公司北京商场美陈定制玻璃钢雕塑安装施工方案公园玻璃钢雕塑定做价格苏州商场美陈哪里有东莞埃及法老玻璃钢雕塑鹤壁价值观玻璃钢雕塑广州玻璃钢公仔雕塑图片威海玻璃钢雕塑厂家电话玻璃钢小品雕塑厂家简介泰州玻璃钢雕塑设计价格淅川玻璃钢雕塑价格甘肃玻璃钢桃子雕塑长春公园玻璃钢雕塑定做通辽玻璃钢雕塑订制价格邯郸玻璃钢仿铜雕塑厂家香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化