堆实际上是堆吗?
2022-09-02 04:19:53
我当然没有历史知识来评论这个问题,但我相信术语“堆”用于描述.NET和Java中长期存在的对象的内存分配机制,更像是一个令人回味的描述性词 - 就像这个巨大的非结构化(从开发人员的角度来看)内存质量的东西。相比之下,“堆栈”唤起了一个更加结构化的数据区域的形象(同样,从开发人员的角度来看):堆栈上的“位置”感觉比它们位于堆上的“位置”更相关。
这显然与实际的堆数据结构非常不同,后者使用“堆”一词来指代所谓的堆属性(来自维基百科):
如果 B 是 A 的子节点,则键(A) ≥键(B)。
所以,是的,它们实际上是无关的。一个只是一个描述性术语,而另一个则有一个更正式的定义。