Java数组的三种复制

1.地址引用

int a[10] = new int;
int b[10] = new int;
b = a;

这个是直接把b数组的地址空间指向a数组的地址空间,即为地址引用。

  • 优点:快速
  • 缺点:更改一个数组的值即把两个数组的值都更改了,因为两个数组指向了同一个地址空间

2.类似于for循环的一个个数组元素拷贝

用System类中的静态方法arraycopy

System.arraycopy(sourceArray,0,targetArray,0,sourceArray.length);
  • sourceArray:源数组
  • 第一个0:源数组中起始位置
  • targetArray:目标数组
  • 第二个0:目标数组中起始位置
  • sourceArray.length:复制元素的个数

3.用内存块复制的方法实现

用clone方法复制数组

  • clone方法是对象类Object中的方法,可以创建一个有单独内存空间的对象
  • 不是所有的对象都可以克隆。要成为一个可克隆的对象,它的类必须实现java.lang.Cloneable接口
  • clone方法的返回值是Object类型,要使用强制类型转换为适当类型
targetArray = (int[])sourceArray.clone();

你可能感兴趣的:(java语法,java,数组)