读书人

有2个有关问题不懂有点偏门请高手

发布时间: 2011-12-21 23:56:01 作者: rapoo

有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"};    }}
[解决办法]
建议你换书,这种不知所云的书还是少看为好!

读书人网 >J2SE开发

热点推荐