遇到一个java的奇怪问题,希望高手给予指点
public class strange{
public static void main(String args[]){
int a[][] = {{1,2,3},{4,5,6}};
int b[][] = new int[2][3];
System.arraycopy(a,0,b,0,a.length);
b[0][0] = 4;
System.out.println(a[0][0]);
System.out.println(b[0][0]);
}
}
结果输出为4 4 ,我只是修改了数组b第一个元素的值,可数组a的第一个元素的值也变了。如果将以上程序中的数组改为一维的,则不存在此问题,请高手赐教。希望说出本质性的原因,谢谢
Java数组的拷贝问题
答案:3 悬赏:20 手机版
解决时间 2021-06-01 12:43
- 提问者网友:杀生予夺
- 2021-06-01 05:21
最佳答案
- 五星知识达人网友:何以畏孤独
- 2021-06-01 05:58
System.arraycopy在复制的时候只是把数组b的指针指向了和数组a的同一个位置,也就是他们都指向了同一块内存。
全部回答
- 1楼网友:青灯有味
- 2021-06-01 08:26
大概看了一下 问题应该出在System.arraycopy(a,0,b,0,a.length);
这句话~!你可以把这句话注释点在运行就不出现这个问题
这句话~!你可以把这句话注释点在运行就不出现这个问题
- 2楼网友:鱼忧
- 2021-06-01 07:04
使用集合!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯