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时,就表明了你不打算继承该类,而且也不也许别人这样做。换句话说,出于某种考虑,你对该类的设计永不需要做任何变动,或者出于安全的考虑,你不希望他有子类。

posted @ 2013-09-20 01:22  慕容小狼  阅读(123)  评论(0)    收藏  举报