在方法参数前面加final关键字就是为了防止数据在方法体中被修改。web
主要分两种状况:第一,用final修饰基本数据类型;第二,用final修饰引用类型。
第一种状况,修饰基本类型(非引用类型)。这时参数的值在方法体内是不能被修改的,即不能被从新赋值。不然编译就通不过。例如:
code
1 public static void valid(final int ag){2 ag=9;3 ag=10;4 }
错误提示:
第二种状况,修饰引用类型。这时参数变量所引用的对象是不能被改变的。做为引用的拷贝,参数在方法体里面不能再引用新的对象。不然编译通不过。例如:orm
1 public static void valid(final String[] ag){2 ag=new String[9];3 }
这个的提示和上面是同样的。:“ The final local variable param2 cannot be assigned. It must be blank and not using a compound assignment.“对象
可是对于引用,若是我是这样,则不会报任何错,彻底能编译经过。it
1 public static void valid(final String[] ag){2 ag[0]="5";3 System.out.println(ag);4 }
因此,final这个关键字,想用的话就用基本类型,仍是颇有做用的。引用类型,仍是算了吧。编译