1 //final修饰基本类型变量和引用类型变量的区别
2 import java.util.Arrays;
3 class Person
4 {
5 private int age;
6 public Person(){}
7 public Person(int age)
8 {
9 this.age = age;
10 }
11 public void setAge(int age){this.age = age;}
12 public int getAge(){return age;}
13 }
14 public class FinalReferenceTest
15 {
16 public static void main(String[] args)
17 {
18 //final修饰数组,iArr是一个引用变量
19 final int[] iArr = {5,6,12,9};
20 System.out.println(Arrays.toString(iArr));
21 //对数组元素排序,合法
22 Arrays.sort(iArr);
23 System.out.println(Arrays.toString(iArr));
24 //对数组元素赋值,合法
25 iArr[2] = -8;
26 System.out.println(Arrays.toString(iArr));
27 Arrays.sort(iArr);
28 System.out.println(Arrays.toString(iArr));
29 //下面语句对iArr重新赋值,非法
30 //iArr = null;
31
32 //final修饰Person变量,p是一个引用变量
33 final Person p = new Person(45);
34 //改变Person对象的age实例变量,合法
35 p.setAge(23);
36 System.out.println(p.getAge());
37 //下面语句对p重新赋值,非法
38 //p = null;
39 }
40 }