final 关键字可以用于变量,方法,和类,final的好处是什么?
1 如果定义变量是finall 必须要初始化,一般final会和static一起用,我们可以在定义变量的时候初始化,或者在static静态快里面初始化,这个变量是只读的,不能被修改
比如编译就通不过。如果定义的变量没有static修饰,也可以在构造器中初始化
2 如果定义方法是final的话,那么他的子类不能override这个方法,如果在子类里面重写父类的final方法,编译通不过
3.如果定义的类是final的话, 那么他将不能被继承,
那么我们为什么用final呢
1.final 提高了性能,jvm 和java 应该都会缓存final变量。
2.final 变量可以安全的多线程实现共享
3.使用final ,jvm会对方法和变量和类 进行优化。
比如String,Integer就是final类,他不能继承,
在匿名类中所有的变量都必须是final
final和abstract是相反的,不能同时使用
对集合对象生命的为final的,不能重新new,
final List<String> abc = new ArrayList<String>();
abc.add("aasd"); abc.remove(0);
abc=new ArrayList<String>();//这个直接编译不通过