java数组的复制

java数组的复制,由于以前代码写着写着有点懵,因此总结一下记录一下。java

主要有如下几种方式:数组

  1. clone
  2. System.arraycopy 和 Arrays.copyOfRange
  3. Arrays.copyOf
  4. for循环

最后须要注意的是基本类型的拷贝是不影响原数组的值的,若是是引用类型,就不能在这用了,由于数组的拷贝是浅拷贝,对于基本类型能够,对于引用类型是不适合的。spa

1.使用Object.clone()方法

输出:.net

clone方法是从Object类继承过来的,基本数据类型(String ,boolean,char,byte,short,float ,double,long)均可以直接使用clone方法进行克隆,其实我以为有点神奇的。3d

没想到String数组也是能够的,听说是由于String类型是由于其值不可变因此才能够使用(不求甚解)。blog

2.System.arraycopy

输出:继承

这是java系统给咱们提供的一个native方法for循环

Arrays.copyOfRange

输出:效率

这里底层的实现也是System.arraycopy循环

3.Arrays.copyOf

输出:

这里看到底层实现仍是System.arraycopy

4.for循环

这个方法也是很万能的,就是写起来效率比较低!

参考:

https://blog.csdn.net/abyjun/article/details/46444921

https://blog.csdn.net/weixin_36210698/article/details/70876912

相关文章
相关标签/搜索