java基础之final关键字 java的final关键字
我是个没得感情的更新机器
final 一个Java语言的关键字。你只能定义一个实体一次,以后不能改变它或继承它。
具体来说:
一个final修饰的类不能被子类化,即这个类是我这里用的,而且我不希望这个类被继承,java中最著名的例子就是String类了。
一个final修饰的方法不能被重写,继承了该类后,不能重写该方法。
一个final修饰的变量或者参数,若参数为基本类型,该参数不能在方法中修改其值。若参数为对象应用,该参数在方法中不能修改其指向引用,但是具体内容是可以修改的
无论在什么情况下,编译器都会去确保final变量在使用前必须被初始化。若不进行初始化,会提示错误。
final还可以用作形参,表示这个参数不允许改变,但是这个实际意义不大,因为java方法中是值传递,都是拷贝一份而不改变原来的值。
而为了确保final的初始化已被执行,确保读取的final是已经在对象中被初始化过,jvm底层会使用内存屏障来保障。