java 中 Biginteger 的初始化

Initialization of Biginteger in java

不明白Java中BigInteger下面初始化的"" + 1的意思:

BigInteger fact = new BigInteger("" + 1);

这是一种将整数转换为字符串的惰性方法。

""+1

是一个空字符串和 int 1 的串联,它附加到空字符串,导致字符串 "1".

你也可以只写

BigInteger fact = new BigInteger("1"); 

如文档中所写: https://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html

BigInteger 有一个接受 String 的构造函数。当您将表达式声明为 "" + 1 时,该类型将从左到右评估为第一个类型,因此它将是一个字符串。

字面意思和new BigInteger("1")

一样

除了欺骗 class 的学生或求职面试的人之外,为什么有人会这样做 :)

这只是一种将 int 转换为字符串的惰性方法。当 int 是一个变量时,它可能更有意义。例如

public void doStuff(int i) {
    BigInteger fact = new BigInteger("" + i) ;
    ...
}

正如其他人指出的那样,还有其他方法可以实现这一点,但在这种情况下(当 int 是一个变量时)它可能是最少的字符