int [] array1=new int[]{1,2,3}; 
int [] array2={4,5,6}; array1的数值都存放在 堆中,因为有NEW关键字 
array2的数值都存在那里?C++中是放在栈中。这里也是吗? 是JAVA中所有的数据都放在堆中吗?

解决方案 »

  1.   

    new int[] {}...和{}都是堆对象,但是array1,array2也就是这两个对象的引用/指针/or anything you prefer,是栈里的。
      

  2.   

    shine333说的也就是JAVA里所有的创建的数据都是放在堆里的。
    不过引用是放在了栈里的?
      

  3.   

    应该是只有引用是放在了栈里的。今天从书上看的。
    “C++这种追求效率的语言允许创建堆栈对象,但是大多数OO语言都不把对象放到堆栈里面。不过,对象的句柄一般放在这里,便于高效的访问。”
      

  4.   

    JTree tree = new JTree();
    定义的tree是放在栈里的,它是个引用。
    new JTree(),new出来的对象是放在堆里的。
    栈里的tree指向堆里的new JTree()对象
      

  5.   

    davidafairy() 正确
    可以看看java虚拟机的内容
      

  6.   

    static的东西有单独的static区。
    除此以外对象本身都是在堆里。当然包括成员变量和成员对象的引用。
    局部变量包括对象的引用,是在栈区。
      

  7.   

    JTree tree = new JTree();
    定义的tree是放在栈里的,它是个引用。
    new JTree(),new出来的对象是放在堆里的。
    栈里的tree指向堆里的new JTree()对象说的不错,就这样去理解。
      

  8.   

    如果学过C++就按C++里的理解就行了!
    JAVA中也有堆和栈的!
      

  9.   

    当然是在堆里了
    在JAVA中所有的对象都是在堆了
    (当然除了String常量是在DATA区)
    其引用是在栈里