日期:2014-05-20  浏览次数:20713 次

有2个问题不懂,有点偏门,请高手来看看~~
问题1:
Java code
class Test{
    public static void main(String[] args){
        Integer[] a = {1, 2, 3,};  //问题1:这里最后一个逗号(3,),据说有没有这个逗号,会有很大的不同,请问是什么不同?
        for(Integer b : a){   
            System.out.println(b + "");
        }
    }
}

  请看清问题,Integer[] a = {1, 2, 3,};这个逗号可以没有的,但是加了以后说是:使维护长列表变得更容易,这话什么意思?

问题2:
  关于 程序的副作用/为了副作用而调用 这句话怎么理解??

------解决方案--------------------
不知道,帮楼主顶下,顺便自己学习了。
------解决方案--------------------
第一个还真不知道这句话是什么意思,呵呵。第二个就是说为了改变内部状态而调用的意思。
------解决方案--------------------
举个例子,你调用一个方法,该方法改变了其他对象的状态,都是返回一个值,但是你不关心返回值,只是调用这个方法,这是你需要的就是这个方法的副作用,也就是它对你需要的对象作的修改.
public class Test{
public static void main(String[] args) {
StringBuilder builder=new StringBuilder("Hello ");
test(builder);
System.out.println(builder);
}
public static String test(StringBuilder builder){
builder.append("world");
return builder.toString();
}

}
看一下上面的这个例子,test方法对builder进行了修改,这就是方法的副作用.
------解决方案--------------------
第一个问题应该是编译器优化的问题了,不必过于关注.有精力可以分析一下class文件中的指令.
------解决方案--------------------
请问楼主看的是什么书啊
------解决方案--------------------
第一个问题不太明白。
------解决方案--------------------
没太大区别,同意楼上ZangXT的观点

------解决方案--------------------
Java code
public class TTT {
    public static void main(String[] args) {
        String[] sa = {"000", "111", "222"};
    }
}

------解决方案--------------------
建议你换书,这种不知所云的书还是少看为好!