?
在java中,有很多容易被忽视的地方,今天在网上看到一个java的谜题,代码如下:
?
?
BigInteger five = new BigInteger("5"); BigInteger four = new BigInteger("4"); BigInteger total = BigInteger.ZERO; total.add(five); total.add(four); System.out.println(total);
?
乍一看,觉得这个代码应该输出9,毕竟4+5=9嘛。其实,如果你运行一下这段代码(这段代码不能直接运行,你得需要修改一下),会惊奇的发现,这段代码居然打印出了0。
?
分析:
?
结论:
在调用不可变对象的方法时,如果对于看起来是对对象进行改变的方法,则现有实例并不会改变,而是返回一个新的实例。