Topic: 新手关于“堆”的问题?

  Print this page

1.新手关于“堆”的问题? Copy to clipboard
Posted by: rockykid
Posted on: 2005-10-05 18:14

java的对象是分配在“堆”上的,这里的堆是指我们数据结构上的那种“堆”么?
高手见笑

2.Re:新手关于“堆”的问题? [Re: rockykid] Copy to clipboard
Posted by: why
Posted on: 2005-10-05 20:19

閣下的問題是甚麼?Question

3.Re:新手关于“堆”的问题? [Re: rockykid] Copy to clipboard
Posted by: rockykid
Posted on: 2005-10-06 09:49

sorry,是数据结构书上的那种排序堆吗?

4.Re:新手关于“堆”的问题? [Re: rockykid] Copy to clipboard
Posted by: andykid
Posted on: 2005-10-06 10:25

不是,在thinking in java里作者明确提到了这个问题。java分配内存所说的堆和数据结构的堆是不一样的

5.Re:新手关于“堆”的问题? [Re: rockykid] Copy to clipboard
Posted by: owlrose
Posted on: 2005-10-06 12:19

我的理解,堆和栈都是内存区域
堆: 存放所有对象本身
栈: 存放程序中的内建类型(int,long等), 存放对象的reference(类似句柄)
如果在DotNet中, 栈还存放 struct 结构类型

6.Re:新手关于“堆”的问题? [Re: rockykid] Copy to clipboard
Posted by: truthawp
Posted on: 2005-10-06 18:46

我的理解是:堆和栈是映射关系,有点象链式数据结构,栈提供一个地址,而堆里有着这个地址里具体所指的东西

7.Re:新手关于“堆”的问题? [Re: rockykid] Copy to clipboard
Posted by: rockykid
Posted on: 2005-10-06 19:29

谢谢 andykid
不只是第几章的,我没记得有看到

8.Re:新手关于“堆”的问题? [Re: rockykid] Copy to clipboard
Posted by: bloodwolf
Posted on: 2005-10-08 10:52

好像不是这样吧。
按照windows编程C/C++的说法
动态分配的对象都是使用堆
而在编译时就可以确定的对象使用的内存是栈,如函数的参数传递,定义并初始化的变量。
好像是因为栈的存取速度比堆快。
栈所指的内存是程序启动时系统分配的,如果有无限的递归调用系统就会栈溢出或不够的错误。
不知道java中的堆栈概念是不是与C/C++有不同。
但此处的堆栈概念肯定不是数据结构的堆栈

9.Re:新手关于“堆”的问题? [Re: rockykid] Copy to clipboard
Posted by: wijh
Posted on: 2005-10-08 14:11

看了inside JVM,sun并没有对外公开JVM内的栈和堆的结构是怎么样的,可见应该不是数据结构课中的那个栈和堆的结构。

10.Re:新手关于“堆”的问题? [Re: rockykid] Copy to clipboard
Posted by: crazy4stef
Posted on: 2005-10-08 18:39

这个是操作系统中的概念

11.Re:新手关于“堆”的问题? [Re: rockykid] Copy to clipboard
Posted by: andykid
Posted on: 2005-10-09 00:59

sorry,是偶记错了,是另一本书 Robert Lafore所著的Java 数据结构和算法(第二版)中介绍的。原文是
注意 这里的"堆”是指一种特殊的二叉树(指数据结构里的堆),不要和Java和C++等编程语言里的"堆"混淆,后者指的是程序员用new能得到的计算机内存的可用部分。

12.Re:新手关于“堆”的问题? [Re: andykid] Copy to clipboard
Posted by: rockykid
Posted on: 2005-10-09 14:33

rethank you,kid!

13.Re:新手关于“堆”的问题? [Re: rockykid] Copy to clipboard
Posted by: hbyw618
Posted on: 2005-11-12 14:19

大悟了,谢谢


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923