16、以下代码输出是什么?
publicclassTest {publicstaticvoidmain(String[] args) {BigInteger one = new BigInteger("1");BigInteger two = new BigInteger("2");BigInteger three = new BigInteger("3");BigInteger sum = new BigInteger("0");sum.add(one);sum.add(two);sum.add(three);System.out.println(sum.toString());}}
解答:这个是对大整数的考察。结果是不是6呢?看起来好像没毛病,其实不然。sum.add(one)与我们基本类型的sum+=one可不同,前者不会讲结果赋值给sum对象,结果被赋值了这条语句的返回值。因此不管怎么add,sum对象的值是没有变化的,因此结果为0。
18、如何迭代Map容器?
*/
解答:0.
20、下面为一个单例的实现代码,请指出代码中有几个错误或不合理之处,并改正。
publicclassTest {public Test instance = null;publicstatic Test getInstance() {if (instance == null) {instance = new Test();return instance;}}}
解答:单例模式要满足三点:1、私有化构造方法;2、创建私有静态对象;3、提供公有静态方法获取唯一实例。
因此错误包含,1构造函数没有私有化,2对象非私有静态,3获取实例的方法中return不应包含在条件中。