iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java中final,finally,finalize有哪些区别
  • 951
分享到

Java中final,finally,finalize有哪些区别

2023-06-21 22:06:31 951人浏览 独家记忆
摘要

本篇内容主要讲解“Java中final,finally,finalize有哪些区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中final,finally,finalize有哪些区别”

本篇内容主要讲解“Java中final,finally,finalize有哪些区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中final,finally,finalize有哪些区别”吧!

    1.final 介绍

    final Java 语言中的一个关键字,使用 final 修饰的对象不允许修改或替换其原始值或定义。

    final 可以用来修饰:类、方法、变量和参数,其中可以用来修饰“参数”这一项,容易被人遗忘,这是 final 的 4 种用法。

    1.1 final 用法说明

    final 修饰类时,此类不允许被继承,表示此类设计的很完美,不需要被修改和扩展。

    final 修饰方法时,此方法不允许任何从此类继承的类来重写此方法,表示此方法提供的功能已经满足当前要求,不需要进行扩展。

    final 修饰变量时,表示该变量一旦被初始化便不可以被修改。

    final 修饰参数时,表示此参数在整个方法内不允许被修改。

    1.2 final 用法展示

    final 修饰类:

    final class Animal {}

    final 修饰方法:

    public class FinalExample {    public final void sayHi() {        System.out.println("Hi~");    }}

    final 修饰变量:

    public class FinalExample {    private static final String MSG = "hello";//......}

    final 修饰参数:

    public class FinalExample {    public void sayHi(final String name) {        System.out.println("Hi," + name);    }}

    2.finally 介绍

    finally 则是 Java 中保证重点代码一定要被执行的一种机制。

    我们可以使用 try-finally 或者 try-catch-finally 来进行类似关闭 JDBC 连接、保证释放等动作。

    2.1 finally 用法展示

    try {    // do something} finally {    // 一定会执行的代码}

    2.2 finally 扩展

    有时候面试也会问finally 是否一定会被执行?这是一个有诱导嫌疑的问题,正常情况下 finally 一定是会执行的,但有一个特殊情况 finally 也是不会执行的,

    特殊的实现代码和执行结果如下:

    Java中final,finally,finalize有哪些区别

    3.finalize 介绍

    finalizeObject 类中的一个基础方法,它的设计目的是保证对象在被垃圾收集前完成特定资源的回收,但在 jdk 9 中已经被标记为弃用的方法(deprecated)。

    在实际开发中不推荐使用 finalize 方法,它虽然被创造出来,但无法保证 finalize 方法一定会被执行,所以不要依赖它释放任何资源,因为它的执行极不“稳定”。在 JDK 9 中将它废弃,也很好的证明了此观点。

    3.1finalize 性能问题

    finalize 除了执行“不稳定”之外,还有一定的性能问题。

    因为 finalize 的执行是和垃圾收集关联在一起的,一旦实现了非空的 finalize 方法,就会导致相应对象回收呈现数量级上的变慢,有人专门做过 benchmark,大概是 40~50 倍的下降。

    因为 finalize 被设计成在对象被垃圾收集前调用,这就意味着实现了 finalize 方法的对象是个“特殊公民”,JVM 要对它进行额外处理。finalize 本质上成为了快速回收的阻碍者,可能导致你的对象经过多个垃圾收集周期才能被回收。

    到此,相信大家对“Java中final,finally,finalize有哪些区别”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

    --结束END--

    本文标题: Java中final,finally,finalize有哪些区别

    本文链接: https://www.lsjlt.com/news/300876.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • Java中final,finally,finalize有哪些区别
      本篇内容主要讲解“Java中final,finally,finalize有哪些区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中final,finally,finalize有哪些区别”...
      99+
      2023-06-21
    • Java中final、finally、finalize的区别
      一、功能的区别 final:final关键词主要用于声明某个变量、方法或类是不可变的。一旦被final修饰,就不能被修改或重写。 finally:finally关键词主要用在异常处理中,无论try块中是否发生异常,fin...
      99+
      2023-10-29
      区别 final Java
    • Java中final,finally,finalize 有什么区别
      目录1.final 介绍1.1 final 用法说明1.2 final 用法展示2.finally 介绍2.1 finally 用法展示2.2 finally 扩展3.finaliz...
      99+
      2024-04-02
    • 在java中final、finally、finalize有什么区别
      java中final、finally、finalize的区别:final可以用来修饰类、方法和变量,修饰类表示该类不能被继承、修饰方法表示该方法不能被重写、修饰变量表示该变量是一个常量不能被重新赋值。finally则是异常处理的一部分,只能...
      99+
      2024-04-02
    • java 基础之final、finally和finalize的区别
      java 基础之final、finally和finalize的区别final可以修饰类,不能被继承;可以修饰方法,不能被重写;可以修饰变量,只能赋值一次。finally是try语句中的语句体,不能单独使用,用来释放资源;finalize是一...
      99+
      2023-05-31
      final finally finalize
    • final、finally、finalize()的区别(skycto JEEditor)
          final 表示最终的、不可改变的。用于修饰类、方法和变量。    finally 异常处理的一部分,它只能用在try/catch语句中,表示希望finally语句块中的代码最后一定...
      99+
      2023-06-02
    • Java中final、finally和finalize关键字有什么不同的地方
      这篇文章给大家介绍Java中final、finally和finalize关键字有什么不同的地方,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。final当这个关键字修饰一个类时,意味着他不能派生出新的子类,也就是说不能被...
      99+
      2023-05-31
      java finally final
    • final与static关键字有哪些区别
      这篇文章主要为大家展示了“final与static关键字有哪些区别”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“final与static关键字有哪些区别”这篇文章吧。都可以修饰类、方法、成员变量...
      99+
      2023-06-02
    • java中final的功能有哪些
      在Java中,final关键字有以下功能:1. 声明一个不可变的变量:当使用final关键字声明一个变量时,该变量的值不能被改变。一...
      99+
      2023-09-04
      java final
    • Java final的用法有哪些
      这篇文章主要介绍“Java final的用法有哪些”,在日常操作中,相信很多人在Java final的用法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java final的用法有哪些”的疑惑有所帮助!...
      99+
      2023-06-17
    • java final的作用有哪些
      Java中的final关键字有以下几个作用:1. 声明一个常量:可以用final修饰一个变量,使其变成一个常量,一旦被赋值后就不能再...
      99+
      2023-09-05
      java final
    • java中sleep()和yield()有哪些区别
      这篇文章主要介绍了java中sleep()和yield()有哪些区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。4 sleep()和yield()的区别1) sleep()...
      99+
      2023-06-03
    • Java中&、|、&&、||有哪些区别
      这篇文章主要介绍Java中&、|、&&、||有哪些区别,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现...
      99+
      2023-06-14
    • Java中==和equals()的区别有哪些
      小编给大家分享一下Java中==和equals()的区别有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1. ==== 是运算符,用来判断两个值是否相等,==可以使用在基本数据类型变量和引用数据类型变量中1.1 基本数...
      99+
      2023-06-25
    • java与javascript有哪些区别
      这篇文章主要介绍“java与javascript有哪些区别”,在日常操作中,相信很多人在java与javascript有哪些区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
      99+
      2024-04-02
    • Java和PHP有哪些区别
      这篇文章主要介绍“Java和PHP有哪些区别”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java和PHP有哪些区别”文章能帮助大家解决问题。概述Java 是面向对象编程语言,它可用于撰写跨平台应用...
      99+
      2023-06-27
    • javascript和java有哪些区别
      这篇文章主要介绍了javascript和java有哪些区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。区别:1、Java需要在JDK或JRE的JVM上运行;而JavaScr...
      99+
      2023-06-14
    • javascript和java区别有哪些
      这篇文章主要介绍javascript和java区别有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!区别:1、JavaScript由浏览器解释执行,Java程序则是编译执行。2、JavaScript提供丰富的内置对...
      99+
      2023-06-15
    • java和javascript有哪些区别
      小编给大家分享一下java和javascript有哪些区别,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序。区...
      99+
      2023-06-14
    • php和java区别有哪些
      php和java区别有:1、java适合于开发大型的应用系统,而php适合于快速开发中小型应用系统;2、java通过JDBC来访问数据库,而php则是根据不同的数据库采用不同的数据库访问接口;3、在开发上php比较快,能够做到即写即用,而j...
      99+
      2024-04-02
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作