public class test {    static a[] aa;
    public test(){} }这个动态数组编译后会被分配空间吗?

解决方案 »

  1.   

    未直接或间接用 new XXX()德都不会分配空间,基础类除外
      

  2.   

    楼上好像说错了,使用new xxx(),是在堆内存中给对象的成员变量赋初值的,不过这个对象因为没有被其他变量引用,会交给gc处理
      

  3.   

    fantacyland(fantacyland) ( ) 信誉:94  2006-04-21 09:46:00  得分: 0  
     
     
       那么此时aa是以什么形态存在的呢?
      
     
    ---------------------------------------------------------------------------
    此时aa只是Stack上的一个变量声明而已,null值的引用被默认地赋给了它。除此之外,没有任何别的东西被创建。
      

  4.   

    如果是 
    public class test {
    static int a[10];
    public test(){}
    }
    是不是声明时就已经分配空间了?
    还有Strng aa="123";
    引用指向堆还是栈的“123”?
      

  5.   

    java中的数组是作为对象来处理的
    如果是 
    public class test {
    static int a[10];
    public test(){}
    }
    这里a是一个数组对象,没有被初始化,所以还是没分配空间
    Strng aa="123";
    123存在常量池中
      

  6.   

    楼上正解
    Strng aa="123";
    应该是在栈里的常量池里
    要是new的就在堆里了