Which two code fragments correctly create and initialize a static array of int elements(Choose two)
   
   A static final int[] a ={100,200};
   
   
  B static final int []a ;
     static{ a =new int[2];a[0]=100;a[1]=200;}
   
   
   C static final int []a =new int [2]{100,200};  
    D static final int [] a;
      
     static void init(){a =new int[3];a[0]=100;a[1]=200;}求解释:
    。

解决方案 »

  1.   

    AB對C static final int []a =new int [2]{100,200}; // 不能這樣寫
    D static final int [] a; static void init(){a =new int[3];a[0]=100;a[1]=200;} // final的初始化不能這樣寫
      

  2.   

    final 变量的初始化必须在声明时或者构造时(代码块或者构造函数)中完成,故A、B
      

  3.   

    A,B
    C应该是  static final int []a =new int []{100,200};
    数组初始化就该这样,不知道该怎么解释D应该是  static final int [] a;
      static{a =new int[3];a[0]=100;a[1]=200;}
    被static  final 同时声明的话只能在定义时或者静态块中初始化,D的静态方法肯定不行.