Java中foreach循环语句的局限

如以下Java程序:

public class test4 {
    public static void main(String args[]){
        int [] a=new int[3];
        for(int j:a){
            j=55;
        }
    }
}

其结果最后输出的并不是直观认为的55 55 55,而是0 0 0

其原因在于foreach每次循环只能获得对象的值,而不能获得对象的句柄,故对对象副本的任何改变都无法对对象本身造成任何影响,如以下过程:

int a = 1;
int b = a;
b = 2;
System.out.println(a);

猜你喜欢

转载自www.cnblogs.com/J14nWe1/p/8918696.html