您的位置: 翼速应用 > 业内知识 > Java > 正文

详细说明final关键字的功能作用及其与static的区别

    果然,在上一次面试中,面试官问了这个问题:请告诉我final关键字的具体含义,并详细说明其功能以及它与static的区别。 为了使面试中的每个人都注意这个问题,特地对答案进行了整理,以供您参考。


    1、final关键字的含义


    final表面意思就是不可更改的,恒量的意思;类似于C语言中的const关键字,指的是无法改变的量,这与静态标量static是有区别的,静态变量指的是只有一份存储空间,值是可以改变的。使用final一定原因是出于软件设计的角度,因为别人看到final这个关键字就知道是什么意思,达到心领神会的效果,但也正是由于这种"语义"的存在,在程序设计中要谨慎使用,以免误用。


    在Java中final修饰的就是常量,而且变量名要大写;


    Math类:public static final double E = 2.7182818284590452354;public static final double PI = 3.14159265358979323846;

......java源码中好多变量都用final修饰


    2、final的作用


    final根据修饰位置的不同作用也不相同,针对三种情况:


    (1)修饰变量,被final修饰的变量必须要初始化,赋初值后不能再重新赋值。


    注意:局部变量不在我们讨论的范畴,因为局部变量本身就有作用范围,不使用private、public等词修饰。


    (2)修饰方法,被final修饰的方法代表不能重写。


    (3)修饰类,被final修饰的类,不能够被继承。


    注意:final修饰的类,类中的所有成员方法都被隐式地指定为final方法。


    2.1、final修饰变量


    被final修饰的变量必须显示的初始化,初始化可以以三种方式:1)定义时初始化,2)在构造器中设置值,3)在非静态块中为final实例变量设置值。


    final修饰变量指的是:这个变量被初始化后便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可变,即不能再指向其他的对象。

final修饰变量1.png

    如果final修饰的变量是对象类型,那么不可更改指的是该变量不可以再指向别的对象,但是对象的值时可以更改的,比如:

final修饰变量2.png

    3、final和static的区别


    static作用于成员变量用来表示只保存一份副本,而final的作用是用来保证变量不可变,看一下网上的一个例子:

final和static的区别3.png

    4、其他final相关的知识


    (1)使用final关键字,如果编译器能够在编译阶段确定某变量的值,那么编译器就会把该变量当做编译期常量来使用。如果需要在运行时确定,那么编译器就不会优化相关代码。

其他final相关的知识4.png

    (2)注意不要将final与finally、finalize()等搞混。


    (3)将类、方法、变量声明为final能够提高性能,这样JVM就有机会进行估计,然后优化。


    (4)接口中的变量都是public static final 的。

我来说两句

0 条评论

推荐阅读

  • 响应式布局CSS媒体查询设备像素比介绍

    构建响应式网站布局最常见的是流体网格,灵活调整大小的站点布局技术,确保用户在使用的幕上获得完整的体验。响应式设计如何展示富媒体图像,可以通过以下几种方法。

    admin
  • 提升网站的性能快速加载的实用技巧

    网站速度很重要,快速加载的网站会带来更好的用户体验、更高的转化率、更多的参与度,而且在搜索引擎排名中也扮演重要角色,做SEO,网站硬件是起跑线,如果输在了起跑线,又怎么跟同行竞争。有许多方法可提升网站的性能,有一些技巧可以避免踩坑。

    admin
  • 织梦CMS TAG页找不到标签和实现彩色标签解决方法

    织梦cms是我们常见的网站程序系统的一款,在TAG标签中常常遇到的问题也很多。当我们点击 tags.php 页的某个标签的时候,有时会提示:“系统无此标签,可 能已经移除!” 但是我们检查程序后台,以及前台显示页面。这个标签确实存在,如果解决这个问题那?

    admin
  • HTML关于fieldset标签主要的作用

    在前端开发html页面中常用的标签很多,今天为大家带来的是关于HTML中fieldset标签主要的作用说明,根据技术分析HTML

    admin

精选专题