MyClass i = new MyClass[10];
我这样声明一个数组。
那么i是一个reference variable,i[0-9]也是吗? 
在内存方面,HEAP上连续分配了10个对象,在STACT上也连续分配了10个variable(i[0-9])分别reference到10个对象吗?如果我这样赋值 i[0]=new MyClass(); What actually happened? 在存储方面

解决方案 »

  1.   

    MyClass i = new MyClass[10];这只是创建了一个长度为10的空的数组结构,其中每个位置上的元素都是null。i[0] = new MyClass(); 这句先在堆上创建MyClass类的实例,并把该实例的引用存储在数组的第1个位置上。
      

  2.   

    MyClass i = new MyClass[10];......
      

  3.   

    MyClass i = new MyClass[10];
    ???
      

  4.   

    Dan1980() ( ) 信誉:98 
    不是已经说得很明白了。
      

  5.   

    楼上的
    MyClass i = new MyClass[10]; 有这种写法吗?不是MyClass [] i = new MyClass[10];
      

  6.   

    你可以用在构造函数中print一个字符串来区分一下。
    在执行MyClass i[] = new MyClass[10]时是没有任何字符输出的。
    当你执行了
    i[0]=new MyClass();时才会有字符串输出。
    所以同意Dan1980() ( ) 的说法!