【发布时间】:2015-10-31 10:44:16
【问题描述】:
我是编程新手,最近了解了某些语言(c++、java、...)中对象和变量的存储是如何工作的。但是当我(在随机站点中)阅读有关存储如何在其他语言(如 ruby)中工作时,显然堆栈的概念不存在并且对象和变量保存在堆中。这是真的吗?
如果是这样,那么像堆栈或(其他语言的.data,.bss)这样的段在物理上不存在吗?存储是如何工作的?我不太明白内存段。
编辑:我不是在询问每种语言的内存段,我只是想知道为什么一个段存在于一种语言中,而在另一种语言中却没有。 (段在物理上不作为...段存在吗?就像 RAM 的不同部分)
【问题讨论】:
-
在大多数语言中,您所能保证的只是变量可以保存值。无法保证这些值保存在内存中的什么位置,或者这些值是否放置在内存中(它们可以放置在处理器寄存器或其他硬件设备中)。
-
你“最近发现的”只是表面上的东西。但正如你现在的问题,一个正确的答案会填满很多书。您应该多阅读现有文献,如有必要,稍后再问一个更狭窄的问题。
-
@deviantfan 那么,你能给我指点一些书或相关的文学作品吗?我还不明白为什么这是一个广泛的问题。
标签: c++ ruby memory-management stack heap-memory