一、final功能:被final修饰的类不能被继承 ;
被final修饰的方法不能重写;
final修饰的常量不能二次赋值,final修饰的常量所有名字大写;
final防止指令重排序,保证多线程下的安全。
二 、但如上代码,final修饰的常量A不可以二次赋值,但arr数组可以重新赋值,这是因为A是基本类型,而数组是引用类型,由此得出结论:final修饰的是一块固定的地址上的值。
三、final修饰全局变量必须赋值,final修饰局部变量不需要赋值
这是因为局部变量在方法中,在创建对象时,方法不会被编译,只会在堆中有记录,只有当入栈调用时才会报错。