BigInteger
java.math包下的

第二个传入的String如果不是整数,那么就会抛出异常 使用:

第三个几乎不少用.radix参数是2,那么就返回二进制的.

如果写的是BigInteger(“123”,2);呢?会抛出异常.把一个long转换成BigInteger.

在内部对常见的数字-16~16进行了优化.内部提前创建了这些数的BigInteger对象,如果多次获取不会创建新的. (ps:实现上,其实是BigInteger类有一个静态代码块,提前创建好了这些对象.)

因此,如果这样比较的小的数需要用valueOf(注意,这是静态方法)如何相加?

存储原理:

会存储符号位(-1为负数 0 为0 1为int) mag数组存储了各个位数.
mag数组存的都存的是补码.从高位到低位,按4字节分组,从高位的组到地位的组存储.