objc 的内存管理有别于 java 的其中一个地方是他家的 object 是放在 heap 中的,这样理解正确吗?

2014-03-13 10:36:33 +08:00
 jwu
我记得大学时候听java课,一直以为所有object都是分配在stack中,因为stack比heap的空间‘更大些’而指向这些object的指针是存放在heap中的。但objc中好像并非如此,为了加快速度,他家的object是直接放在heap中,(1)对吗?(2)那object的指针也是存放在heap中?(3)而stack中只是存放方法(frame)的?
3417 次点击
所在节点    iDev
10 条回复
jwu
2014-03-13 10:43:37 +08:00
又想了下,对于我的第(2)个问题,貌似对象指针是在stack中吧?举例,我调用一个方法,譬如main(),这个方法作为一个frame被放到stack中,main中定义一个对象指针譬如 NSArray *myArray...这个指针随main方法一道都在stack中,但myArray的对象是被分配到heap中的,这样理解对吗?
aisk
2014-03-13 10:44:35 +08:00
楼主关于Java的完全记反了。
jsonline
2014-03-13 10:45:47 +08:00
你的语言名称一个都没写对 Objective-C Java.
你是大小写不敏感的种族吗?
l6751902
2014-03-13 10:46:31 +08:00
[code]因为stack比heap的空间‘更大些’ [/code]

楼主你是认真的么?
tang3w
2014-03-13 10:48:43 +08:00
楼主对 Objective-C 的认识几乎为零
jwu
2014-03-13 10:58:36 +08:00
看来学得不好惹众怒了...
ivanlw
2014-03-13 13:03:19 +08:00
所有家的Object都在heap中,所有家的指针(reference)都在stack中…吧…?难道是我一直是错的?
wy315700
2014-03-13 13:04:23 +08:00
Java的object不是一直都在heap里的吗
TMBest
2014-03-13 14:07:09 +08:00
LZ没有正确的区分stack和heap
zhicheng
2014-03-14 11:27:11 +08:00
LZ现在的知识,还是先不要区分什么 stack 和 heap 了。。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/104098

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX