开发者社区> 问答> 正文

为什么这种方法会影响阵列?

在使用'change'方法执行'show'方法后,数组'i'的值也会改变,为什么会发生?

public class test_public_array {

int i[] = new int[5];

void change() {
    int tmp[] = i;
    for(int z=0; z<i.length; z++) {
        tmp[z] = 0;
    }
}

void intial(int data) {     
    for(int z=0; z<i.length; z++) {
        i[z] = data;
    }
}

void show() {
    for (int j : i) {
        System.out.println(j);
    }
}
public static void main(String[] args) {

    test_public_array t = new test_public_array();
    t.intial(34);
    t.show();
    System.out.println("\n\n\n\n\n");
    t.change();
    t.show();

}

}

展开
收起
小六码奴 2019-08-17 16:35:46 1844 0
1 条回答
写回答
取消 提交回答
  • 这是因为tmp并i引用相同的数组。请记住,Java中非基本类型的所有变量实际上都是引用。

    2019-08-17 16:36:17
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低成本自动三维室内重建系统 立即下载
恒逸石化:用计算消耗取代能源消耗 立即下载
恒逸石化 -用计算消耗取代能源消耗 立即下载