gpt4 book ai didi

java - 栈帧占用的大小

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:47:37 25 4
gpt4 key购买 nike

Java 堆栈为每个方法调用创建新的框架,但是这个框架是否占用堆栈上的内存?

澄清我的问题:

public void oneWay()
{
System.out.println("start");
get1();
}

private void get1()
{
System.out.println("get1");
get2();
}

private void get2()
{
System.out.println("get2");
}

这个输出是一样的:

public void anotherWay()
{
System.out.println("start");
System.out.println("get1");
System.out.println("get2");
}

但是第二个片段在堆栈上占用的内存更多还是相等?简而言之,栈帧是否占用内存?

编辑: 堆栈帧需要多少内存? Sun(现在是 Oracle)是否有任何规范?

最佳答案

是的,当然。这就是为什么嵌套太深会导致堆栈溢出的原因。如果您发现您的线程需要更大(或更小)的堆栈,您可以使用 -Xss 命令行开关来修改堆栈大小。

specification似乎为实现提供了很大的自由度,所以总而言之,您不能真正依赖堆栈帧的大小。

关于java - 栈帧占用的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20094274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com