为什么Java的BigInteger有10和1作为常量?有实际用途吗? 1 年,3 月 Questions & Answers 15834 为什么BigInteger类有常数10和1?把它们作为常数有什么实际用途吗?我能理解ZERO的一些用例
# 1 楼答案 实际上我不知道,但也许: 零:additive identity 一:multiplicative identity 十:十进制的基数 也许他们只是在内部使用了很多君士坦斯?(我还没有检查源代码,但它是开源的) 编辑: 例如: 在看了代码之后,我认为原因是他们在内部经常使用零和一。鉴于上述原因,可能认为其他人也可能从这些常数中获益。或者他们也可能在其他一些类中使用这些常量 v1中增加了10个。5. 它似乎没有在内部使用,但可能被另一个类使用 http://hg.openjdk.java.net/jdk7/jdk7/jdk/file/00cd9dc3c2b5/src/share/classes/java/math/BigInteger.java
# 2 楼答案 1可能是数学中最基本的数字(与零并列)。单凭这一点似乎就值得拥有自己的恒久不变。实际上,在许多算法中,它是一个有用的常数 Ten在BigInteger上下文中很重要,因为它是十进制的基础。这一点很重要,因为几个BigInteger函数需要基数(例如^{),因此它是一个非常有用的常数
# 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 楼答案 这是一个设计决策,因为1和10用于Java API代码库的其他部分。创建Big*是一个昂贵的操作,使用常量避免创建新对象(Big*无论如何都是不可变的),代码可读性更高 API的其余部分可能不需要其他常量 把它们公之于众可能是个错误。(java API充满了“糟糕”的设计决策)
# 1 楼答案
实际上我不知道,但也许:
也许他们只是在内部使用了很多君士坦斯?(我还没有检查源代码,但它是开源的)
编辑:
例如:
在看了代码之后,我认为原因是他们在内部经常使用零和一。鉴于上述原因,可能认为其他人也可能从这些常数中获益。或者他们也可能在其他一些类中使用这些常量
v1中增加了10个。5. 它似乎没有在内部使用,但可能被另一个类使用
http://hg.openjdk.java.net/jdk7/jdk7/jdk/file/00cd9dc3c2b5/src/share/classes/java/math/BigInteger.java
# 2 楼答案
1可能是数学中最基本的数字(与零并列)。单凭这一点似乎就值得拥有自己的恒久不变。实际上,在许多算法中,它是一个有用的常数
Ten在BigInteger上下文中很重要,因为它是十进制的基础。这一点很重要,因为几个BigInteger函数需要基数(例如^{),因此它是一个非常有用的常数
# 3 楼答案
10、0和1几乎可以回答所有问题。例如,如果你想达到42岁,你可以做一个(10+10+10+10+1+1):)
# 4 楼答案
假设您编写了一个函数,经过一些计算和db操作后返回
BigInteger
。通常可能需要返回null、0、1等值。返回BigInteger.ZERO
很容易。这些值是公共的,因为它们通常是需要的另外
BigInteger.TEN
通常用于幂/除/模操作签出
BigInteger
公共方法。您将很容易看到它们的常见用例# 5 楼答案
这是一个设计决策,因为1和10用于Java API代码库的其他部分。创建Big*是一个昂贵的操作,使用常量避免创建新对象(Big*无论如何都是不可变的),代码可读性更高
API的其余部分可能不需要其他常量
把它们公之于众可能是个错误。(java API充满了“糟糕”的设计决策)