为什么我们需要在堆中创建一个对象

Why do we need to create an object in heap?

本文关键字:创建 一个对象 我们 为什么      更新时间:2023-10-16

为什么我们可以将堆栈用于我们的所有需求?

注意:如果您在解释时举一个例子,那将是非常好的,因为用示例更容易理解。

对不起,英语不好。

实际上,呼叫堆栈有限且小。典型的极限是一些兆字节。相比之下,您通常可以在堆内存中分配千兆字节。

(在某些系统上,您可以配置系统以具有较大的堆栈;但是您需要告诉用户是否需要(

也是,最重要的是,呼叫堆栈是一个堆栈,因此Lifo(最后一次(学科也是如此。在许多情况下,您想以与其分配无关的顺序发布对象,或者只是在"首先分配,首先销毁"顺序(这是不可能的(。

考虑阅读有关垃圾收集的内容,例如GC手册。它教您有关动态内存分配的有用概念和术语(即使对于具有手动内存管理的C程序(。还请阅读有关过程的虚拟地址空间(也是如此,至少对于Linux(。

(。

动态内存分配的另一个优点是,相同的可执行文件可以在各种计算机上运行(具有各种资源,尤其是不同量的RAM(,但无法处理相同数量的数据。如果您必须从静态分配所有内存,则不会是这种情况(例如,具有50 GB静态数据的C程序甚至无法在我的笔记本电脑上启动(。