首页 > 代码库 > 关于Java 拷贝数组方法 Arrays.copyOf() 是地址传递还是值传递
关于Java 拷贝数组方法 Arrays.copyOf() 是地址传递还是值传递
基本元素为对象时,浅拷贝,拷贝引用(ArrayList 的clone()调用Arrays.copyof(),官方文档注明为浅拷贝)
class A{ int a; public A(int a){ this.a=a; } public String toString(){ return a+""; } } A[] kk=new A[2]; kk[0]=new A(1); kk[1]=new A(2); A[] kkk=Arrays.copyOf(kk,2); System.out.println(kk==kkk); System.out.println(kk.equals(kkk)); System.out.println(Arrays.toString(kk)); System.out.println(Arrays.toString(kkk)); kk[0].a=555555; System.out.println(Arrays.toString(kk)); System.out.println(Arrays.toString(kkk));
/*
false
false
[1, 2]
[1, 2]
[555555, 2]
[555555, 2]
为值时,
int[] a=new int[2]; a[0]=11; a[1]=2; int[] b=Arrays.copyOf(a, 2); a[1]=3333333; System.out.println(Arrays.toString(a)); System.out.println(Arrays.toString(b)); /*output [11, 3333333] [11, 2]
关于Java 拷贝数组方法 Arrays.copyOf() 是地址传递还是值传递
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。