Java基础 final关键字

本文详细介绍了Java中的final关键字,包括其在类、方法和变量上的使用方式,以及如何通过final来阻止类的继承和方法的重写。同时,文中还讨论了final关键字对于Java内存模型的影响,特别是如何防止变量从构造方法中逸出。

Java基础 final关键字

  • stop Value change
  • stop Method Overridding
  • Stop Inheritance
  1. 修饰类
    不想被继承

  2. 修饰方法

当一个方法不想被子类覆写(Override)时,可以用final来修饰。另外一方面,把方法用final来修饰也有一定的性能提升上的帮助,因为虚拟机知道它不会被覆写,所以可以以更简单的方式来处理。

private的方法,默认都会被编译器加上final.

  1. 修饰值

值不能修改,只能被赋值一次,但是不一定非得在声明是就直接初始化。 下段代码也是合法的。

final int a ;
if(foo()){
    a = 3;
}else{
    a = 4;
}
  1. 内存模型的作用 - 防止变量从构造方法中逸出
class Foo{
    int a ;
    Foo(int v){
        a = v;
    }
}

在多线程环境下,有可能出现,一个线程创建 Foo对象, 另一个则读取 该对象的a的值。 而此时可能读到还未正确初始化的a的值。

理解 Java 关键字 Finalhttp://toughcoder.net/blog/2016/11/12/understanding-java-keyword-final/?utm_source=tuicool&utm_medium=referral

Final of Java undone!!
final关键字介绍
深入理解Java内存模型(六)——final

转载于:https://www.cnblogs.com/ironbrady/p/6673200.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值