1、
final 修饰在变量上,说明这个变量的值不能修改 final 修饰在方法上,说明这个方法在继承后不能覆盖. final 修饰在类上,说明这个类为终态,不能被继承了.
2、final类型修饰的参数分为两种类型:基本类型 与 引用类型
参考:http://www.cnblogs.com/lan0725/archive/2013/05/24/3097573.html
(1) 在调用的参数内部,无论是基本类型还是引用类型,其值不可改变(引用类型指的引用对象不变)
(2) 引用类型中属性可变
@ final修饰基本类型(int,double,...)时,值不能改变:例final int a = 6,a 的值就是6,不能改; @ final修饰引用类型时,引用类型变量的地址值不可被修改。但如果final修饰的是对象类型那么则不能将其他对象赋值给它,但它所指向的对象内部的值是可变的,如:
class BB { public int i; } class PP { public static void f(final BB ref) // ref不能修改(程序传递的是引用,也就是地址,所以你的地址不能修改) { ref.i = 55; } public static void main(String args[]) { BB x = new BB(); f(x); System.out.println(x.i); // i可以修改 } }
很容易理解:final表示输入的值不能再被修改
像上面的例子,如果你想改变ref的引用地址是错误的,如:ref = new BB()或ref = null是错的,但可以改变ref引用对象的值,如ref.i = 2;
总结:对于基本类型,不可变指的是值 对于引用类型,不可变指的是引用地址
public class Test { int a = 0; public static void main(String[] args) { final int i = 10; i = 11;//错,final的基础类型值不可变。 Test t = new Test(); t = new Test();//错,不能将另一对象赋值给final变量。 t.a = 1;//对,可以修改对象的内部值。 } } 3、Example:
//: c12:DirList2.java // Uses anonymous inner classes. // {Args: "D.*\.java"} import java.io.*; import java.util.*; import java.util.regex.*; import com.bruceeckel.util.*; public class DirList2 { public static FilenameFilter filter(final String regex) { // Creation of anonymous inner class: return new FilenameFilter() { private Pattern pattern = Pattern.compile(regex); public boolean accept(File dir, String name) { return pattern.matcher( new File(name).getName()).matches(); } }; // End of anonymous inner class } public static void main(String[] args) { File path = new File("."); String[] list; if(args.length == 0) list = path.list(); else list = path.list(filter(args[0])); Arrays.sort(list, new AlphabeticComparator()); for(int i = 0; i < list.length; i++) System.out.println(list[i]); } } ///:~ 注意,filter( )的参数必须是final的。要想在匿名内部类里使用其作用域之外的对象,只能这么做。 参考:
http://blog.csdn.net/tavor/article/details/1920336
http://www.jb51.net/article/43423.htm
http://www.cnblogs.com/xiaorenwu702/p/5167997.html
http://www.cnblogs.com/lwbqqyumidi/p/3513047.html
http://feiyeguohai.iteye.com/blog/1500108
http://www.importnew.com/7553.html