java final
final 与 static的区别
1.对于基本数据类型
final 定义的基本数据类型每次初始化的时候被确定,之后不允许修改;static定义的数据类型第一次初始化时即被确定(只进行一次初始化),之后不再进行初始化也不会进行修改。
2.final定义的数组的数值可以被改变,但不允许将数组的引用指向另一个对象。
e.g.
final int []a = {1,2,3,4,5}; for(i = 0; i < a.length;i++) a[i] ++;//correct a = new int[3];//wrong
3.同样的,对于final定义的类的对象,不允许将对象的引用指向另一个对象。
4.使用final方法有两个原因。第一个原因是把方法锁定,以防止任何继承它的类修改它的含义。这是出于设计的考虑:想要确保在继承中使用的方法保持不变,并且不会被覆盖。
第二个是因为效率的原因。
5.当将类定义为final时,就表明了你不打算继承该类,而且也不也许别人这样做。换句话说,出于某种考虑,你对该类的设计永不需要做任何变动,或者出于安全的考虑,你不希望他有子类。

浙公网安备 33010602011771号