当前位置: 代码迷 >> J2SE >> 有2个有关问题不懂,有点偏门,请高手来看看~
  详细解决方案

有2个有关问题不懂,有点偏门,请高手来看看~

热度:79   发布时间:2016-04-24 12:58:30.0
有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"};    }}
------解决方案--------------------
建议你换书,这种不知所云的书还是少看为好!
  相关解决方案