java中的final关键字

1.final的语义:

  java中final修饰符的语义是:不可变的。

  在java中,final可以修饰:变量,方法和类。分别代表,变量是不可变的;方法是不可被重写的;类是不可被继承的。

 

2. final修饰变量:

   当final修饰成员变量时,修饰类变量和实例变量,初始化的时机是不同的。

   实例变量可以在声明时、初始化块,构造器中赋初始值;

   而类变量在 声明时 只可以在 声明时 ,静态初始化块中初始化。

 

3. 宏替换:

   final变量的语义和常量是很像的。

   可是,在某些情况下,final变量是会在编译时替换为“常量”。就是在,编译时,我们能够直接确定final变量的值就可以了。哪怕是该final变量的值是某些常量通过简单的运算得到的,也可以。

 

4. 闭包(内部类)

   在内部类中引用其他变量,这些变量必须是用final修饰的。因为,我们要保证闭包能够脱离主类的生命周期而存在。那这就要求,所引用的这些外变量必须是常量。

原文地址:https://www.cnblogs.com/haore147/p/4214727.html