没有好好看 Thinking in Java 吧?
在 Java 里面所有都是对象,数组也是对象,除了 Primitive Type 以外。
把数组声明为常量,即把一个对象声明为常量,是说这个对象变量不能在
指向其它的对象。

解决方案 »

  1.   

    同理,把一个对象变量声明为常量,只是意味这这个对象常量,即对象的reference已经和这个对象所绑定。
      

  2.   

    public class FinalData
     {final int[] a = { 1, 2, 3, 4, 5, 6 };
     
     public static void main(String[] args) {
      FinalData fd1 = new FinalData();
      for(int i = 0; i < fd1.a.length; i++)
         System.out.println(fd1.a[i]);
     }
    }
      

  3.   

    a是final的,因此a的例如是不能改变的。
    当fd1.a[i]++实际是在修改a的内容。
      

  4.   

    java中final的含义和C++ const的含义有所不同
    final的含义是引用a已经不能指向其他对象
    除了所定义的数组,但不是说数组的内容不能
    该变!!!