java基础(三)之final关键字

来源:互联网 发布:han眼镜 知乎 编辑:程序博客网 时间:2024/06/05 15:23

一.final 理解
根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。

二.final用法

final可以用来修饰变量,方法,类

1.final修饰变量(final最常用的用法)

final修饰变量时,表示final指向的变量的地址不再发生变化,而不是final指向的变量的值不能变化。
final修饰的变量分基本类型和非基本类型(对象类型)

a) final 修饰基本类型就相当于常量
这里写图片描述

b) final修饰复杂对象类型的变量
这里写图片描述
2.final修饰方法
final修改方法表明该方法是不可被修改的,属于终态

3.final修改类
final修改类说明该类不能被继承,我们常见的string就是final终类
三.final重要知识点

1.final关键字可以用于成员变量、本地变量、方法以及类。

2.final成员变量必须在声明的时候初始化或者在构造器中初始化,否则就会报编译错误。

3.你不能够对final变量再次赋值,如果是基本类型则可当成常量,如果是对象类型,则代表不能修改该对象指向的地址(引用),可以修改变量的值。

4.本地变量必须在声明时赋值。

5.在匿名类中所有变量都必须是final变量。
(留下这个坑,后面补上)

6.接口中声明的所有变量本身是final的。
final和abstract这两个关键字是反相关的,final类就不可能是abstract的。

7.final方法在编译阶段绑定,称为静态绑定(static binding)。

8.没有在声明时初始化final变量的称为空白final变量(blank final variable),它们必须在构造器中初始化,或者调用this()初始化。不这么做的话,编译器会报错“final变量(变量名)需要进行初始化”。

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

10.按照Java代码惯例,final变量就是常量,而且通常常量名要大写:

原创粉丝点击