Java中的final关键字详解

来源:互联网 发布:在淘宝购买网店 编辑:程序博客网 时间:2024/06/05 22:56

三种被final修饰的场景:

Java中final关键字的使用很频繁,它可以修饰变量、方法跟类。“final”的英文意思是最终的、不可更改的意思,因此被final修饰的变量、方法或类是不能被更改的。
final一般会跟static关键字结合使用。下面分别解析被final修饰的变量、方法和类:

一、final变量

定义:被final修饰的变量就是final变量,final变量经常和static关键字一起使用,作为常量。
特点:final变量被赋值后不能被更改,否则会出现编译错误。
补充:final变量名一般都大写,比如final int COUNT。

示例:

 public static final int COUNT = 100; public static final String TEST = "HAYDEN";

非静态的final变量也可以在类的构造方法中为其赋值。

public class Test {    public final int COUNT;    public Test(int COUNT){        this.COUNT = COUNT;    }}

二、final方法

定义:被final修饰的方法就是final方法。
特点:final方法不能被重写。(一般情况下,当一个方法是很完整的,不需要被重写或者你不希望被被别人重写,可以将方法声明为final),final方法比非final方法要快,因为在编译的时候已经静态绑定了,不需要在运行时再动态绑定。
示例:

public final String finalTest(){        return "This is a final method!";    }

三、final类

定义:被final修饰的类就是final类。
特点:final类不能被继承。java自带很多final类,比如包装类String、Interger等。一般final类功能都十分完整,不需要子类来进行扩充。
示例:

public final class FinalClassTest {}

使用final关键字修饰的好处:

1.final关键字提高了性能。JVM和Java应用都会缓存final变量。

2.final变量可以安全的在多线程环境下进行共享,而不需要额外的同步开销。

3.使用final关键字,JVM会对方法、变量及类进行优化。

原创粉丝点击