美文网首页
System.arraycopy

System.arraycopy

作者: 大山村长 | 来源:发表于2020-02-23 07:57 被阅读0次

    在看ArrayList源码是看到了Arrays.copyOf底层调用的是系统方法System.arraycopy,对此方法产生了好奇,所以做了下探究,System.arraycopy究竟是深复制还是浅复制呢?

    深复制: 被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量。那些引用其他对象的变量将指向被复制过的新对象,而不再是原有的那些被引用的对象。换言之,深复制把要复制的对象所引用的对象都复制了一遍。

    浅复制: 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的对象。

    对象初始化 赋值与修改值代码 结果

    由上面的Photo数组可以看出,在修改p3对象后,targetArr里面的值也随之改变,因此得出结论:System.arraycopy方法采用的是浅复制

    相关文章

      网友评论

          本文标题:System.arraycopy

          本文链接:https://www.haomeiwen.com/subject/xlydqhtx.html