赋值号"="是浅拷贝,Arrays.copy()是深拷贝!
示例代码:
import java.util.Arrays; public class test { public static void main(String[] args) { // TODO 自动生成的方法存根 int[] a={1,2}; System.out.println("浅拷贝(引用)"); int[] b=a;//引用!!! System.out.println("a:"+Arrays.toString(a)); System.out.println("b:"+Arrays.toString(b)); b[0]=5; System.out.println("change b[1] to 5"); System.out.println("b:"+Arrays.toString(b)); System.out.println("a:"+Arrays.toString(a)); System.out.println("深拷贝"); b=Arrays.copyOf(a, a.length); System.out.println("a:"+Arrays.toString(a)); System.out.println("b:"+Arrays.toString(b)); b[1]=66; System.out.println("change b[1] to 66"); System.out.println("b:"+Arrays.toString(b)); System.out.println("a:"+Arrays.toString(a)); } }运行结果:
浅拷贝(引用) a:[1, 2] b:[1, 2] change b[1] to 5 b:[5, 2] a:[5, 2] 深拷贝 a:[5, 2] b:[5, 2] change b[1] to 66 b:[5, 66] a:[5, 2]