gpt4 book ai didi

java - string类型的局部变量存放在栈还是堆上?

转载 作者:行者123 更新时间:2023-12-02 08:35:02 25 4
gpt4 key购买 nike

我在一个方法中有两个局部变量,如下所示,

int i=10;
String test="test";

据我所知,这些变量仅适用于特定方法,这些变量应该存储在堆栈中,字符串类型也会存储在堆栈中吗?

最佳答案

变量本身(对 String 实例的引用)将存储在堆栈中。

String 实例(包含 char[] 和实际数据)通常存储在堆中。不过,这要由 JVM 来优化。它可能是来自永久池的字符串,或者如果完成了逃逸分析(并且保证字符串不会离开本地范围),它也可能选择在堆栈上分配它。

所有对象和数组都是如此。只有基元不同(因为它们作为值传递,而不是作为对其他地方分配的数据结构的引用)。

关于java - string类型的局部变量存放在栈还是堆上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2099115/

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