java-final修饰符使用情形

final修饰符常见三大使用情形

  1. 修饰类
  2. 修饰方法
  3. 修饰变量(成员变量、局部变量)

1:final修饰类

被final修饰的类,其功能和其他类一样,区别就final修饰的类是不能被其他类继承。
注:
1:fianl是不能用来修饰接口和抽象类的,否则会报错
2:final类不允许被继承(意味着该类的设计永久不需要得到改变,不需要被拓展)
3:final类中的所有成员方法都会被隐式地指定为final方法

2:final修饰方法

被final所修饰的方法,其功能和普通方法一样,只是final方法不允许被子类所重写。
注:
1:final方法要比非final方法执行速度要快,因为在编译时已经静态绑定了,不需要在运行时进行动态绑定。
2:final不能修饰构造器方法
3:private所修饰的方法会被隐式的指定为final方法

3:修饰变量

被final修饰的变量,可以当做为常量;
1:final基本类型变量:基本类型变量被final修饰之后,变量的值将永远不能改变
2:final引用类型变量:引用类型变量存储的是所指向对象的内存地址,是对象的引用,所以这里的不可变,指的是变量所指向的地址不可变,而所指向的对象实际是可以扩展的。
注:
被final所修饰的变量(成员变量,局部变量)必须显式初始化,不然是会报错的。
① 第一种方法是在声明的时候初始化(以下面例子为例)

 final int a = 1;
 final List<String> list = new ArrayList<>();

② 第二种方式是通过构造函数来初始化,赋予默认值。(以下面例子为例)

public class Test{
	final int a;
	final List<String> list;
	public Test(){
		this.a = 1;
		this.list = new ArrayList<>();
	}
}

final 修饰符的好处

  1. final关键字提高了性能,JVM和JAVA应用都会缓存final变量
  2. final关键字可以安全的在多线程环境下进行共享,而不需要额外的同步开销
  3. 使用final关键字,JVM会对变量,类和方法进行一些优化
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值