我今天浏览 Java 代码时发现了一些东西。
int[] m = mag;
int len = m.length;
int[] xm = xInt.mag;
if (len != xm.length)
return false;
(在BigInteger
类中,解压src.zip
可以找到,在equals
方法中。)为什么是一个全新的变量 m
在只使用一次时创建的吗?为什么代码不只是 int len = mag.length
?我也在另一种方法 (bitLength
) 中看到了这一点,同样,m
只使用了一次。这样做有什么好处还是这只是这个类的创建者的错误?
编辑:正如@usernametbd 所指出的,稍后使用它:
for (int i = 0; i < len; i++)
if (xm[i] != m[i])
return false;
但他们仍然可以使用 mag
。为什么要创建一个全新的变量?
在不同的函数中(在同一个类中,bitLength
),创建了一个新变量m
,并且只使用了一次。
最佳答案
因为mag是字段,m是局部变量。访问局部变量可能会更快,尽管现代 JIT 可以自动创建这样的替代局部变量。
顺便说一句,你应该告诉你你想到的方法是什么(我发现它是equals()
),并引用原始来源(它是可用的)而不是反编译的。
关于java - BigInteger 类中的无用变量,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13596326/