有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (5) 个答案

  1. # 1 楼答案

    实际上我不知道,但也许:

    也许他们只是在内部使用了很多君士坦斯?(我还没有检查源代码,但它是开源的)

    编辑:

    例如:

    在看了代码之后,我认为原因是他们在内部经常使用零和一。鉴于上述原因,可能认为其他人也可能从这些常数中获益。或者他们也可能在其他一些类中使用这些常量

    v1中增加了10个。5. 它似乎没有在内部使用,但可能被另一个类使用

    http://hg.openjdk.java.net/jdk7/jdk7/jdk/file/00cd9dc3c2b5/src/share/classes/java/math/BigInteger.java

  2. # 2 楼答案

    1可能是数学中最基本的数字(与零并列)。单凭这一点似乎就值得拥有自己的恒久不变。实际上,在许多算法中,它是一个有用的常数

    Ten在BigInteger上下文中很重要,因为它是十进制的基础。这一点很重要,因为几个BigInteger函数需要基数(例如^{),因此它是一个非常有用的常数

  3. # 3 楼答案

    10、0和1几乎可以回答所有问题。例如,如果你想达到42岁,你可以做一个(10+10+10+10+1+1):)

  4. # 4 楼答案

    假设您编写了一个函数,经过一些计算和db操作后返回BigInteger。通常可能需要返回null、0、1等值。返回BigInteger.ZERO很容易。这些值是公共的,因为它们通常是需要的

    public BigInteger findMyLovelyBigInteger(Integer secretNumber) {
        if (secretNumber == null) {
            return BigInteger.ZERO; // better than BigInteger.valueOf(0);
        } else {
            // some db operations
        }
    }
    

    另外BigInteger.TEN通常用于幂/除/模操作

    签出BigInteger公共方法。您将很容易看到它们的常见用例

  5. # 5 楼答案

    这是一个设计决策,因为1和10用于Java API代码库的其他部分。创建Big*是一个昂贵的操作,使用常量避免创建新对象(Big*无论如何都是不可变的),代码可读性更高

    API的其余部分可能不需要其他常量

    把它们公之于众可能是个错误。(java API充满了“糟糕”的设计决策)