首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

求大牛来帮小弟我解释上上面的代码

2013-01-20 
求大牛来帮我解释下下面的代码public class Test2 {public static void main(String[] args) {int x0fin

求大牛来帮我解释下下面的代码
public class Test2 {

     public static void main(String[] args) {
        
     int x=0;
     final int y =1;
     int [] z={8};
     final int [] n = {3};
     Use(x, y, z, n);
     
     }

static void Use(final int x,int y,final int [] z ,int [] n){
    //插入内容
System.out.println(z[0]);
System.out.println(z[0]--);
System.out.println(z[0]++);

}

}

8
8
7  这是为什么会出输出如下数据
[解决办法]
System.out.println(z[0]);这行应该毫无疑问吧。。z[0]初始化为8;
System.out.println(z[0]--);z[0]--;先引用在自减,输出8;然后z[0]自减为7;
System.out.println(z[0]++);z[0]++;先引用在自加,输出7;然后z[0]自加为8;
如果还有一行
System.out.println(z[0]);这行则应该输出8;
[解决办法]

引用:
谢谢2两位,还有个问题想问下final int [] z是复合类型,是不是凡是复合类型final都是指向内存地址,而并不是内容。

你这里final的是z,也就是z不可以改变了。
就算你不加final,z的值也是内存中的地址,它指向的是这个数组。

热点排行