【发布时间】:2013-12-20 10:53:06
【问题描述】:
在 C 语言中,我可以使用以下小程序耗尽堆栈内存区域(我的 Mac 中的堆栈大小限制为 8MB)
int main(int argc, const char **argv) { int a[1024*1024*2]; 长尺寸 = sizeof(a); 返回0; }由于数组是java也是一个对象,所以它的元素存储在堆中。根据 Oracle's doc ,Mac 中默认线程栈大小为 512KB。是否有任何程序可以耗尽堆栈大小?
【问题讨论】:
-
你想引起堆栈溢出?
void func() { func(); }会做得很好。 -
public static void main(String[] args) {main(args);}?如果您解释了您实际尝试完成的原因/内容,我们可能会帮助您提供一些在 Java 中更有用的东西。 -
我要做的是验证线程堆栈大小为 512KB。
标签: java c memory-management operating-system jvm