java - BigInteger 类中的无用变量,为什么?

标签 java

我今天浏览 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/

相关文章:

java - GWTTestCase 给了我一个错误

java - 在 OS X 上运行 Java 6 有哪些选择?

java - idea java Scratch文件中不存在包org.apache.commons.lang3.time

Java 注册提供者抛出 EOFException

java - 为什么 Android 中的倒计时器使用 Handler?

java - 如何让所有用户都使用 ldap?

java - 在扩展 Button 的类中定义和 ActionListener

java - 在 JavaFX 中创建气泡形状的文本编辑器

Java编写Shift-JIS CSV格式文件

java - Eclipse 中没有 Android 项目选项