数组里不存放对象,而只存放对象的reference,也就是引用,所以跟C是不太一样的!

解决方案 »

  1.   

    对象实体是存放在Heap中的,而它的引用存放在Stack中!要区分开!!
      

  2.   

    一个是一样大的,没有赋值的单元值为null。
    或者赋一个默认值,可以改成
         public Circle(double r,String str)
            {radius=r;color=str;}
         public Circle(double r)
            {this.Circle(r,defaultStr);}
         public Circle(String str)
            {this.Circle(defaultR,str);}
      

  3.   

    说一下自己对该问题的看法:
      数组的大小在创建时就固定拉,而且每个元素大小是相等的,因为对象数组中保存的不是该
    对象本身,而是该对象的引用,对象保存在内存堆中,引用是象primative 一样的一串二进制数,根据该值,可在堆中找到所指的对象;由此可见,一个对象数组所占内存并非其中对象占内存之和,其实是:对象数组和其引用对象并列存放在内存堆中,只是对象数组中保留了指向其引用对象的指针,因此,对象数组中引用的对象所占内存并不一定相等,而它们也与对象数组的内存大小无关,对象数组的内存大小只与其元素个数有关。