数据结构中的堆是一种特殊的二叉树,栈在内存中的使用我比较清楚,那么Java中的堆是指内存按堆的数据结构来分配吗?
谁能讲一下java中堆的概念?谢谢

解决方案 »

  1.   

    java中的堆是内存的一个区域,被专门用来存放对象。
      

  2.   

    栈:存放基本数据类型的数据以及根据类产生的对象的引用变量。
    堆:存放的是对象。
    用new构造函数产生一个对象后,JVM就将这个对象存放在堆中,为了要操作对象的属性和方法,则必须要在栈中定义一个变量来指向堆中的这个对象,栈中的变量的值是对象在堆中的首地址,栈中的变量称为引用变量。
      

  3.   

    数据结构中的堆是一种内存中数据的组织形式
    而java语言中的堆是一个地址空间,该空间内的内存用于提供动态申请的内存
      

  4.   

    栈:存放基本数据类型的数据以及根据类产生的对象的"引用变量"。
    堆:存放的是"对象"。
    String ss=new String("Hello World");ss这个引用就放在栈中   对象  "Hello world"在堆中  不知道我说的对不对
      

  5.   

    似乎记得数据结构中提到两个堆的概念。
    和stack对应的那个堆和java中堆的概念是一致的。
    但是,用来做排序的那个什么堆(可能是你所说的类似二叉树的东东)和java堆完全是两回事。
      

  6.   

    to nicky_hk() 你说的是对的,只是堆中存放的还有一些别的东西(也忘记具体说法了)
      

  7.   

    栈中的“引用”消失以后  该引用所指向的“对象”却没有马上消失,这时 所谓的GC 垃圾回收器就要开始清扫对象了。。一些术语对刚接触的人来说很高深,其实了解以后,也就那么回事,我也看了csdn的几篇文章,收获不少,刚刚入门!