1.final的语义:
java中final修饰符的语义是:不可变的。
在java中,final可以修饰:变量,方法和类。分别代表,变量是不可变的;方法是不可被重写(覆盖)的;类是不可被继承的。
2. final修饰变量:
当final修饰成员变量时,修饰类变量和实例变量,初始化的时机是不同的。
实例变量 可以在声明时、初始化块,构造器中赋初始值;
而类变量在 声明时 只可以在 声明时 ,静态初始化块中初始化。
3. 宏替换:
final变量的语义和常量是很像的。
可是,在某些情况下,final变量是会在编译时替换为“常量”。就是在,编译时,我们能够直接确定final变量的值就可以了。哪怕是该final变量的值是某些常量通过简单的运算得到的,也可以。
4. 闭包(内部类)
在内部类中引用其他变量,这些变量必须是用final修饰的。因为,我们要保证闭包能够脱离主类的生命周期而存在。那这就要求,所引用的这些外变量必须是常量。
5. final锁定的是显示初始化,而不是默认初始化。 public:全局变量。 static:不需要创建对象可以直接用类名调用。
6.Java命名规则:
常量所有字符都为大写,如果单词不唯一,则用下划线连接,而变量第一个单词小写后面单词开头大写。类与函数命名类似首字母大写。