Java中final关键字和final的4种用法

目录
  • 1、final 定义
  • 2、final 的 4 种用法
    • 2.1.修饰类
    • 2.2.修饰方法
    • 2.3.修饰变量
    • 2.4.修饰参数
  • 3、final 作用

重要说明:本篇为博主《面试题精选-基础篇》系列中的一篇,查看系列面试文章请关注我。 Gitee 开源地址:gitee.com/mydb/interv…

1、final 定义

final 翻译成中文是“最终”的意思,它是 Java 中一个常见关键字,使用 final 修饰的对象不允许修改或替换其原始值或定义。

比如类被 final 修饰之后,就不能被其他类继承了,

如下图所示:

2、final 的 4 种用法

final 的用法有以下 4 种:

  • 修饰类
  • 修饰方法
  • 修饰变量
  • 修饰参数

2.1.修饰类

final class Animal {

}

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

2.2.修饰方法

public class FinalExample {

    public final void sayHi() {

        System.out.println("Hi~");

    }

}

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

2.3.修饰变量

public class FinalExample {

    private static final String MSG = "hello";

	//......

}

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

2.4.修饰参数

public class FinalExample {

    public void sayHi(final String name) {

        System.out.println("Hi," + name);

    }

}

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

3、final 作用

使用 final 修饰类可以防止被其他类继承,如 JDK 代码中 String 类就是被 final 修饰的,从而防止被其他类继承,导致内部逻辑被破坏。​

String 类部分源码如下: 

3、总结

final Java 中常见的一个关键字,被它修饰的对象不允许修改、替换其原始值或定义。final 有 4 种用法,可以用来修饰类、方法、变量或参数。

到此这篇关于 Java中final关键字和final的4种用法的文章就介绍到这了,更多相关 final关键字和final的用法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java中final关键字详解及实例

    final在Java中可以声明成员变量.方法.类以及本地变量.一旦你将引用声明作final,你将不能改变这个引用了,如果你试图将变量再次初始化的话,编译器会报编译错误.  final的含义在不同的场景下有细微的差别,但总体来说,它指的是"不可变". 1. final变量 凡是对成员变量或者本地变量(在方法中的或者代码块中的变量称为本地变量)声明为final的都叫作final变量.final变量经常和static关键字一起使用,作为常量.用final关键字修饰的变量,只能进行一次赋值操作

  • 全面解析java final关键字

    根据上下文环境,Java 的关键字 final 的含义有些微的不同,但通常它指的是"这是不能被改变的".防止改变有两个原因:设计或效率.因为这两个原因相差很远,所以有可能误用关键字 final. 以下几节讨论了可能使用 final 的三个地方:数据.方法和类. 1)final 数据 对于编译时常量这种情况,编译器可以把常量带入计算中,可以减少了一些运行时的负担.在 Java 中,这类常量必须是基本类型,而且用关键字 final 修饰.你必须在定义常量的时候进行赋值. 带有恒定初始值的

  • 详解Java中的final关键字

    1 修饰属性或者变量 无论属性是基本类型还是引用类型,作用都是变量里面存放的"值"不可变 经常和static关键字一起使用,作为常量 1 基本类型,变量放的是实实在在的值,如1,"abc"等 2 引用类型,变量放的是个地址,所以用final修饰引用类型变量指的是它里面的地址不能变,即它只能指向初始时指向的那个对象,而不关心指向的对象内容的变化 所以修饰的变量必须被初始化 public static final String LOAN = "loan&quo

  • Java基础教程之final关键字浅析

    前言 前面在讲解String时提到了final关键字,本文将对final关键字进行解析. static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构.下面我们来了解一下final关键字及其用法. final从总体上来说是"不可变的",可用于修改类.方法.变量. 一. final类 final修饰的类,该类不能被继承.当你确认一个类永远不会被继承或不想被继承,那么就可以用final修饰. 同样,对于

  • Java基础之final关键字作用案例

    final关键字的作用 final关键字可以用来修饰引用.方法和类. 1.final关键字修饰类 当用final关键字修饰一个类后,这个类不能被继承.代码示例如下:  所以当定义一个类时,需要想好该类将来是否会被继承. 2.final关键字修饰方法 当用final关键字修饰一个方法后,这个方法不能被重写.代码示例如下:  注意:一个类的private方法会隐式的被指定为final方法. 3.final关键字修饰变量 final关键字修饰的变量初始化后不能再被修改.代码示例如下: 如果是引用类型的

  • Java中final关键字的使用与注意总结

    前言 在java中可以将实例域定义为final.在构建对象是必须初始化这样的值.必须确保在每个构造器执行之后,这个域的值被设置,并且在后面的操作中不再对其修改.使用final声明变量之后,这个值就不能修改,一般final类型的变量都被声明为静态变量,而且是公有类型的,它在内存中被放在一个特有的公共区域. 也就是说,在Java语法中规定,final修饰的成员变量必须有程序员显式地指定初始值. 定义格式为: public  static  final  double pi = 3.1415926:

  • Java中final关键字的深入探究

    前言 final 关键字的字面意思是最终的,不可修改的.这似乎是一个看见名字就大概知道怎么用的语法,但你是否有深究过final在各个场景中的具体用法,注意事项,以及背后涉及的Java设计思想呢? 一. final 修饰变量 1. 基础: final 修饰基本数据类型变量和引用数据类型变量 相信大家都具备基本的常识: 被 final 修饰的变量是不能够被改变的.但是这里的"不能够被改变"对于不同的数据类型是有不同的含义的. 当 final 修饰的是一个基本数据类型数据时,这个数据的值在初

  • Java中final关键字和final的4种用法

    目录 1.final 定义 2.final 的 4 种用法 2.1.修饰类 2.2.修饰方法 2.3.修饰变量 2.4.修饰参数 3.final 作用 重要说明:本篇为博主<面试题精选-基础篇>系列中的一篇,查看系列面试文章请关注我. Gitee 开源地址:gitee.com/mydb/interv- 1.final 定义 final 翻译成中文是"最终"的意思,它是 Java 中一个常见关键字,使用 final 修饰的对象不允许修改或替换其原始值或定义. 比如类被 fin

  • Java中Finally关键字

    final:禁止多态开关~ 修饰变量:变量不能被改变 修饰类:类不能被继承 修饰方法:方法不能被重写 finally:用在异常处理的最后一个语句块 无论是否产生异常都要被执行~~~ Java代码 public final class FinallyTest { public static void main(String[] args) { try { throw new NullPointerException(); } catch (NullPointerException e) { Sys

  • 详解Java中native关键字

    一. 什么是Native Method    简单地讲,一个Native Method就是一个java调用非java代码的接口.一个Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如C.这个特征并非java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern "C"告知C++编译器去调用一个C的函数.    "A native method is a Java method whose implementatio

  • Java中的关键字_动力节点Java学院整理

    Java中常用关键字: 与数据类型相关(10) 与流程控制相关(13) if: 表示条件判断,一般用法if(关系表达式),后跟else或{--} else: 条件转折,如if (关系表达式){语句块1}else{语句块2},如果关系表达式的值为true,则执行语句块1,否则执行语句块2. do--while--:do和while一般一起使用,用于表示循环语句.do{--}while(关系表达式)--:当关系表达式的值为true是继续循环. for:用于表示循环,for循环是最常使用的循环,格式f

  • 谈谈Java中Volatile关键字的理解

    volatile这个关键字可能很多朋友都听说过,或许也都用过.在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果.在Java 5之后,volatile关键字才得以重获生机.volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情. 一.前言 JMM提供了volatile变量定义.final.synchronized块来保证可见性. 用volatile修饰的变量,线程在每次使用变量的时候,都会读取变量修改后的最的值.volatile很容

  • Java中Volatile关键字详解及代码示例

    一.基本概念 先补充一下概念:Java内存模型中的可见性.原子性和有序性. 可见性: 可见性是一种复杂的属性,因为可见性中的错误总是会违背我们的直觉.通常,我们无法确保执行读操作的线程能适时地看到其他线程写入的值,有时甚至是根本不可能的事情.为了确保多个线程之间对内存写入操作的可见性,必须使用同步机制. 可见性,是指线程之间的可见性,一个线程修改的状态对另一个线程是可见的.也就是一个线程修改的结果.另一个线程马上就能看到.比如:用volatile修饰的变量,就会具有可见性.volatile修饰的

  • 浅谈Java中static关键字的作用

    static关键字主要有两种作用: 第一,为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关. 第二,实现某个方法或属性与类而不是对象关联在一起 具体而言,在Java语言中,static主要有4中使用情况:成员变量.成员方法.代码块和内部类 (1)static成员变量: Java类提供了两种类型的变量:用static关键字修饰的静态变量和不用static关键字修饰的实例变量.静态变量属于类,在内存中只有一个复制,只要静态变量所在的类被加载,这个静态变量就会被分配空间,因此就可以被使

  • 深入了解Java中Volatile关键字

    一.基本概念 先补充一下概念:Java 内存模型中的可见性.原子性和有序性. 可见性: 可见性是一种复杂的属性,因为可见性中的错误总是会违背我们的直觉.通常,我们无法确保执行读操作的线程能适时地看到其他线程写入的值,有时甚至是根本不可能的事情.为了确保多个线程之间对内存写入操作的可见性,必须使用同步机制. 可见性,是指线程之间的可见性,一个线程修改的状态对另一个线程是可见的.也就是一个线程修改的结果.另一个线程马上就能看到.比如:用volatile修饰的变量,就会具有可见性.volatile修饰

  • 详解Java中static关键字和内部类的使用

    目录 一. static 关键字 1. static修饰成员变量 2. static修饰成员方法 3. static成员变量的初始化 二. 内部类 1. 实例内部类 2. 静态内部类 3. 局部内部类 4. 匿名内部类 一. static 关键字 在Java中,被static修饰的成员,称之为静态成员,也可以称为类成员,其不属于某个具体的对象,是所有对象所共享的. 1. static修饰成员变量 static修饰的成员变量,称为静态成员变量 [静态成员变量特性]: 不属于某个具体的对象,是类的属

  • Java中Volatile关键字能保证原子性吗

    目录 volatile 有序性 可见性 是否能够保证原子性 volatile volatile 是 Java 中的一个相对来说比较重要的关键字,主要就是用来修饰会被不同线程访问和修改的变量. 而这个变量只能保证两个特性,一个是保证有序性,另外一个则是保证可见性. 那么什么是有序性,什么又是可见性呢? 有序性 那么什么是有序性呢? 其实程序执行的顺序按照代码的先后顺序执行,禁止进行指令重排序. 看似理所当然,其实并不是这样,指令重排序是JVM为了优化指令,提高程序运行效率,在不影响单线程程序执行结

随机推荐