gpt4 book ai didi

Java BigInteger 内存分配

转载 作者:行者123 更新时间:2023-11-30 08:13:16 25 4
gpt4 key购买 nike

我们知道声明对象。我的问题仅与此有关。

根据 Java,以下语句是合法的:

BigInteger number = BigInteger.valueOf(2);

但我不明白的是内存是如何分配的。我们不使用关键字new来分配内存,那么返回的BigInteger 2 是如何存储在number中的呢?

最佳答案

您正在调用一个静态方法 BigInteger.valueOf,它创建一个 BigInteger 的实例并返回对它的引用,您将其分配给您的 number 变量。

在内部,此方法使用 new 关键字创建实例,或从缓存中检索先前创建的实例。

public static BigInteger valueOf(long val) {
// If -MAX_CONSTANT < val < MAX_CONSTANT, return stashed constant
if (val == 0)
return ZERO;
if (val > 0 && val <= MAX_CONSTANT)
return posConst[(int) val];
else if (val < 0 && val >= -MAX_CONSTANT)
return negConst[(int) -val];

return new BigInteger(val);
}

关于Java BigInteger 内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30069064/

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