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 }