返回顶部
首页 > 资讯 > 精选 >Java final的用法有哪些
  • 355
分享到

Java final的用法有哪些

2023-06-17 00:06:42 355人浏览 独家记忆
摘要

这篇文章主要介绍“Java final的用法有哪些”,在日常操作中,相信很多人在Java final的用法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java final的用法有哪些”的疑惑有所帮助!

这篇文章主要介绍“Java final的用法有哪些”,在日常操作中,相信很多人在Java final的用法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java final的用法有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

“谈谈final、finally、finalize有什么不同?”

这是个非常经典的问题。

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

finalize是基础类java.lang.Object的一个方法,它的设计目的是保证对象在被垃圾收集前完成特定资源的回收。

今天我们重点谈谈final,多年的面试经验告诉我,很多人其实失分就是在final上,而非另外两者。final可以用来修饰类、方法、变量,分别有不同的意义。

final修饰的class代表不可被继承扩展;

final修改的方法表示不可被重写(override);

final修饰的变量是不可被修改的。

如果你能够给出上面的回答,至少及格了。但是这样的回答隐藏掉了很多信息,这里真正有变化的是当final修饰变量的时候。

首先,以上叙述还不够准确,精确地说“final修饰的变量一旦被赋值将不可被修改”。

请看如下代码:

public class MyClass { public MyClass(int foo) { this.foo = foo; } private final foo; }

在这段代码中类MyClass的成员变量foo被修饰为final,但并没有对其赋值,而是在构造函数中为其指定的取值。

当然你不能就此认为“final修饰的变量是不可被修改的”说法错误,但至少没有表达出这层意思。

其实Java语言这样设计是有道理的,利用这一特性可以达到这样的目的:当我们发明一个类的时候,有时会发现有一些需要外部传入的参数,我们希望一旦被确定后,在对象被销毁之前不希望其被改变。遇到这种情况,我们就可以将这些参数定义为final的成员变量,然后外界只能够通过构造函数的参数指定。

final是否可以用来修饰函数参数或者内部变量?

答案是肯定的。事实上这种行为是被推荐的,因为这样可以确保变量不会被意外修改。而且被final修饰过的变量与参数还可以被传递给匿名类,例如:

Java final的用法有哪些

Java在实现内部类时,实际会拷贝一份,不是去直接使用局部变量,final在这里可以防止出现数据一致性的问题。

外界有很多文章或者数据中还会介绍,final也许会有性能的好处。

比如,利用final可能有助于JVM将方法进行内联,可以改善编译器进行条件编译的能力等等。

坦白说,很多类似的结论都是基于假设得出的,比如现在高性能JVM(如HotSpot)判断内联未必依赖final的提示,要相信JVM还是非常智能的。

类似的,final变量对性能的影响,大部分情况下,并没有考虑的必要。不要指望这样的小技巧带来所谓的性能好处。相反,使用final更重要的理由,应该是为提高代码可读性,防止变量被意外修改。

***还要强调,final虽然会带来不可变的效果,但并不意味着任何情况下都是如此。比如final修饰java.util.List类型的变量,并不会防止列表内容被修改。实际的效果是防止变量指向的List对象不会被再次创建。而如果你需要的是一个不允许修改的List,则可以使用Collections.unmodifiableList()得到。

到此,关于“Java final的用法有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: Java final的用法有哪些

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

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

猜你喜欢
  • 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中final的功能有哪些
    在Java中,final关键字有以下功能:1. 声明一个不可变的变量:当使用final关键字声明一个变量时,该变量的值不能被改变。一...
    99+
    2023-09-04
    java final
  • Java中final,finally,finalize有哪些区别
    本篇内容主要讲解“Java中final,finally,finalize有哪些区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中final,finally,finalize有哪些区别”...
    99+
    2023-06-21
  • final关键字的作用有哪些
    本篇文章给大家分享的是有关final关键字的作用有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。final 语义是不可改变的。    被 fi...
    99+
    2023-06-02
  • 详解java中Static、final、Static final的各种用法
    对Static、final、Static final这几个关键词熟悉又陌生?想说却又不知怎么准确说出口?好的,本篇文章将简短概要出他们之间的各自的使用,希望各位要是被你的面试官问到了,也能从容的回答...static加载:static在类加...
    99+
    2015-12-04
    java入门 java Static final Static final
  • Java中final关键字和final的4种用法
    目录1、final 定义2、final 的 4 种用法2.1.修饰类2.2.修饰方法2.3.修饰变量2.4.修饰参数3、final 作用 1、final 定义 final 翻译成中文...
    99+
    2024-04-02
  • Play framework 2.0 Final有哪些特性
    这篇文章主要讲解了“Play framework 2.0 Final有哪些特性”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Play framework 2.0 Final有哪些特性”吧!P...
    99+
    2023-06-17
  • final关键字的小细节有哪些
    本篇内容主要讲解“final关键字的小细节有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“final关键字的小细节有哪些”吧!正文final关键字是一个常用的关键字,可以修饰变量、方法、类,...
    99+
    2023-06-15
  • java中final的用法是什么
    在Java中,final关键字有以下几种用法:1. final修饰变量:使用final关键字修饰的变量表示该变量为常量,即不可修改的...
    99+
    2023-09-26
    java
  • java trim的用法有哪些
    在Java中,trim()函数用于删除字符串前后的空格。以下是trim()函数的用法:1. 删除前导和尾随空格:...
    99+
    2023-08-31
    java
  • Java Map的用法有哪些
    Java中的Map是一个接口,用于存储键值对的数据结构。它定义了一组方法操作这些键值对。常用的Map实现类有HashMap、Tree...
    99+
    2023-09-15
    Java
  • java abstract的用法有哪些
    在Java中,abstract关键字可以用于以下情况:1. 抽象类:使用abstract关键字声明的类被称为抽象类。抽象类不能被实例...
    99+
    2023-08-23
    java abstract
  • Java的jfreechart用法有哪些
    JFreeChart是一个用于创建图表的Java库。它提供了多种类型的图表,包括折线图、柱状图、饼图、散点图等。以下是一些使用JFr...
    99+
    2023-08-23
    Java jfreechart
  • Java中final关键字和final的四种用法实例
    目录final定义final的四种用法1. 修饰类2. 修饰方法3. 修饰变量4. 修饰参数final作用总结final定义 final翻译成中文的意思是 “最终&rdq...
    99+
    2023-02-06
    java中final关键字的用法 final有哪些用法 final java关键字
  • php中final关键字的应用场景有哪些
    final类:final关键字可以用来修饰一个类,表示该类不能被继承,即为最终类。这样可以防止其他类对其进行继承,保护其设计和实...
    99+
    2024-04-02
  • php中final关键字的功能有哪些
    final关键字可以用来修饰类,表示该类不能被继承,即该类是最终类。 final关键字可以用来修饰类中的方法,表示该方法不能...
    99+
    2024-04-02
  • Java的使用方法有哪些
    本篇内容介绍了“Java的使用方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!实现equals()class Person...
    99+
    2023-06-17
  • java中swing的用法有哪些
    在Java中,Swing是一个图形用户界面(GUI)工具包,用于创建窗口、按钮、文本框等GUI组件。以下是一些常见的Swing用法:...
    99+
    2023-09-25
    java swing
  • java中charat的用法有哪些
    在Java中,charAt()方法用于获取字符串中指定位置的字符。常见用法如下:1. char charAt(int index):...
    99+
    2023-08-26
    Java charat
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作