BigInteger 实例是不可变的。String、
BigDecimal 以及包装器类型:Integer、Long、Short、Byte、Character、Boolean、
Float 和Double 也是如此,你不能修改它们的值。我们不能修改现有实例的值,
对这些类型的操作将返回新的实例,
我们正确做法是把运算结果返回给原来实例。在下面例子中,第一个例子达不到目的 第二个例子正是我们需要的
看这个类
public class Null
{
public static void main(String[ ] args) {
BigInteger fiveThousand = new BigInteger("5000");
BigInteger fiftyThousand = new BigInteger("50000");
BigInteger fiveHundredThousand = new BigInteger("500000");
BigInteger total = BigInteger.ZERO;
total.add(fiveThousand);
total.add(fiftyThousand);
total.add(fiveHundredThousand);
System.out.println(total);
String s1="hello";
String s2="hello You";
s1.replace('h', 'b');
System.out.println(s1);
}
}
打印结果为
0
hello
public class Null
{
public static void main(String[ ] args) {
BigInteger fiveThousand = new BigInteger("5000");
BigInteger fiftyThousand = new BigInteger("50000");
BigInteger fiveHundredThousand = new BigInteger("500000");
BigInteger total = BigInteger.ZERO;
total=total.add(fiveThousand);
total=total.add(fiftyThousand);
total=total.add(fiveHundredThousand);
System.out.println(total);
String s1="hello";
String s2="hello You";
s1=s1.replace('h', 'b');
System.out.println(s1);
}
}
这次的打印结果为
555000
bello