gpt4 book ai didi

java - 在 Java 中,变量内存空间是动态分配的还是静态分配的?

转载 作者:行者123 更新时间:2023-11-29 08:31:37 25 4
gpt4 key购买 nike

如果我们运行这行代码

long num = 5;

这个变量有64位空间吗?还是大小是由放在side的值决定的?逻辑上它应该是 64 位,因为原始数据类型是可变的。但我的结论是真的吗?

此外,如果我们有一个不可变的对象,例如字符串

String str = "Hello World";

默认情况下为该字符串提供最大内存似乎有违直觉。如果您要设置一个字符串然后更改它,您只需将指针更改为第二个字符串(新创建的字符串)的内存地址。

有人可以回答这个问题或指出正确的方向吗?

最佳答案

long 是一个 64 位 原始值,无论您在其中保留什么实际值。

String 是一个包装了 char[] 的类。内部数组具有不同的大小,具体取决于内部字符的数量。 16 位¹ 每个 char

¹ 它比那复杂一点,但一般来说它是每个字符 16 位。

关于java - 在 Java 中,变量内存空间是动态分配的还是静态分配的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47655201/

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