Java System 类详解 - arraycopy
System类提供了数组copy函数:
public static native void arraycopy(Object src, int srcPos,
Object dest, int destPos,
int length);
从参数列表上看,src和dest都是Object,说明可以copy任意数组。那么我们知道数组既可以是原始类型值的数组,也可以是对象类型的数组。如果是原始类型的数组,copy的就是值,如果是对象类型的数字copy的就是对象的引用而非数据。
Copy Primitive Array
输出:source: [(name, age):(Persion0, 0) , (name, age):(Persion1, 1) ]dest: [(name, age):(Persion0, 0) , (name, age):(Persion1, 1) ]source: [(name, age):(Persion10, 10) , (name, age):(Persion11, 11) ]dest: [(name, age):(Persion10, 10) , (name, age):(Persion11, 11) ]
分析:
元数据source在copy之后修改会对dest数据产生影响。他们hold的是同一组数据的引用。