站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题JAVA中的堆和数据结构中的堆是一种东西么

JAVA中的堆和数据结构中的堆是一种东西么

摘要: JAVA中的堆和数据结构中的堆是一种东西么


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


应该不是


堆是程序运行时根据具体参数(具体情况),分配相应大小的内存给变量使用



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


gz


还有人来谈谈吗


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


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


反正都是内存的分配;肯定是数据结构的一种,但绝对不是你说的二叉树之类的;
二叉树是最基本的东西,在其身上发展了很多深入比较高效的东西,嘿嘿。就知道这么多了


栈:存放基本数据类型的数据以及根据类产生的对象的"引用变量"。
堆:存放的是"对象"。


String ss=new String("Hello World");

ss这个引用就放在栈中 对象 "Hello world"在堆中 不知道我说的对不对


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


to nicky_hk()

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


栈中的“引用”消失以后 该引用所指向的“对象”却没有马上消失,这时 所谓的GC 垃圾回收器就要开始清扫对象了。。

一些术语对刚接触的人来说很高深,其实了解以后,也就那么回事,我也看了csdn的几篇文章,收获不少,刚刚入门!


↑返回目录
前一篇: 请教关于javax.servlet.RequestDispatcher.forward(request, response)
后一篇: 乘法??