1.浅拷贝说明
把原型对象中成员变量为值类型的属性都复制给克隆对象,把原型对象中成员变量为引用类型的引用地址也复制给克隆对象,也就是原型对象中如果有成员变量为引用对象,则此引用对象的地址是共享给原型对象和克隆对象的。简单来说就是浅拷贝只会复制原型对象,但不会复制它所引用的对象。
2.arrays.copyof()拷贝
是创建一个新的数组(也就是分配了一个新的内存空间),然后调用system.arraycopy()复制内容,赋值给新数组,然后返回新数组。
3.实例
public static byte[] copyofrange(byte[] original, int from, int to) { int newlength = to - from; if (newlength < 0) throw new illegalargumentexception(from + " > + to); byte[] copy = new byte[newlength]; system.arraycopy(original, from, copy, 0,math.min(original.length - from, newlength)); return copy;}
实际上它调用的就是system.arraycopy,所以肯定也是浅拷贝。
以上就是如何使用java的arrays.copyof实现浅拷贝?的详细内容。