gpt4 book ai didi

Java,与对象关联的变量是否持久存在?大整数示例

转载 作者:行者123 更新时间:2023-11-29 03:31:17 26 4
gpt4 key购买 nike

我想弄清楚创建对象时使用的变量是否在 Java 中持久存在。

具体来说,我正在查看 BigInteger。如果我正确地阅读了代码,它看起来就像不是在一点一点地进行加法等操作,而是将数字分解为 32 位字,这样可以加快操作速度。我无法弄清楚的是,每次在 BigInteger 上使用方法时是否必须创建这个 32 位字表示和其他变量(mag[]、signum 等),或者如果它们以某种方式持续存在于缓存中并保持关联与他们特定的 BigInteger 一旦创建。

最佳答案

猜想您正在查看这段代码:

 1054    public BigInteger add(BigInteger val) {
1055 int[] resultMag;
1056 if (val.signum == 0)
1057 return this;
1058 if (signum == 0)
1059 return val;
1060 if (val.signum == signum)
1061 return new BigInteger(add(mag, val.mag), signum);
1062
1063 int cmp = intArrayCmp(mag, val.mag);
1064 if (cmp==0)
1065 return ZERO;
1066 resultMag = (cmp>0 ? subtract(mag, val.mag)
1067 : subtract(val.mag, mag));
1068 resultMag = trustedStripLeadingZeroInts(resultMag);
1069
1070 return new BigInteger(resultMag, cmp*signum);
1071 }

您引用的magsignumBigInteger 的每个实例中的字段。它们不是按需计算,它们是 BigInteger 实现的部分。它们的访问方法(不是函数调用)表明它只是访问存储位置。

关于Java,与对象关联的变量是否持久存在?大整数示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18154962/

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