java中的arraycopy问题 10
int[][]intArray={{1,2},{1,2,3},{3,4}};int[][]intArrayBak=newint[3][];System.arraycopy...
int[][] intArray = {{1,2},{1,2,3},{3,4}};
int[][] intArrayBak = new int[3][];
System.arraycopy
(intArray,0,intArrayBak,0,intArray.length);
intArrayBak[2][1] = 100;
for(int i = 0;i<intArray.length;i++){
for(int j =0;j<intArray[i].length;j++){
System.out.print(intArray[i][j]+" ");
}
System.out.println();
} 程序执行intArrayBak[2][1] = 100;是把目标数组赋值,那么源数组是否也改变了?大侠们最好帮我把内存分析下,用arraycopy后,是目标数组和源数组指向同一个引用还是各自都有一个引用,我是初学者,希望java的大侠们伸下援助之手 展开
int[][] intArrayBak = new int[3][];
System.arraycopy
(intArray,0,intArrayBak,0,intArray.length);
intArrayBak[2][1] = 100;
for(int i = 0;i<intArray.length;i++){
for(int j =0;j<intArray[i].length;j++){
System.out.print(intArray[i][j]+" ");
}
System.out.println();
} 程序执行intArrayBak[2][1] = 100;是把目标数组赋值,那么源数组是否也改变了?大侠们最好帮我把内存分析下,用arraycopy后,是目标数组和源数组指向同一个引用还是各自都有一个引用,我是初学者,希望java的大侠们伸下援助之手 展开
展开全部
System.arraycopy()这个函数没有返回内容,
你让System.out.println()去输出,没有内容,它怎么输出?
你把程序这样改:
HelloWorld{
public static void main(String [] args){
System.out.println("欢迎来到机器世界!");
String a="欢迎来到机器世界!";
System.out.println(a);
int[] b=;
int[] c=;
System.arraycopy(c,0,b,0,3);
System.out.println(b[0]+","+b[1]+","+b[2]);
}
你让System.out.println()去输出,没有内容,它怎么输出?
你把程序这样改:
HelloWorld{
public static void main(String [] args){
System.out.println("欢迎来到机器世界!");
String a="欢迎来到机器世界!";
System.out.println(a);
int[] b=;
int[] c=;
System.arraycopy(c,0,b,0,3);
System.out.println(b[0]+","+b[1]+","+b[2]);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我也遇到同样的问题,java教程上说是引用类型会被修改到。但是我自己编写代码的时候输出结果居然是不会影响到源数组,真不知道哪个是正确的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-08-24
展开全部
是DeepCopy,深拷贝,不同的内存,不会互相影响。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询