关于Java 拷贝数组方法 Arrays.copyOf() 是地址传递还是值传递
Posted wqkant
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于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() 是地址传递还是值传递的主要内容,如果未能解决你的问题,请参考以下文章