System.arraycopy()方法及对象的深复制和浅复制

1、System.arraycopy方法实现数组的复制

1-1:System中提供了一个native静态方法arraycopy(),可以使用这个方法实现数组之间的复制。对于普通的一维数组来说,会复制每个数组的值到另一个数组中,即每个元素都是按值传递,修改副本不会影响原来的值。方法原型及复制复制基本类型数组的示例如下:

/**
 * System.arraycopy的方法原型
 * @param src       要复制的源数组
 * @param srcPos    源数组要复制的起始位置(从0开始)
 * @param dest      要复制的目标数组
 * @param destPos   目标数组的起始位置(从0开始)
 * @param length    要复制的长度
*/
public static native void arraycopy(Object src,  int  srcPos,
            Object dest, int destPos, int length);
public static void main(String[] args) {
   
    int[] nums = {
   1024, 1025, 1026, 1027, 1028};
    int[] copyOfNums = new int[nums.length];
    System.arraycopy(nums, 0, copyOfNums, 0, nums.length);
    //修改拷贝数组的元素
    copyOfNums[3] = 1234;
    //观察原数组有无变化
    System.out.println(Arrays.toString(nums)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值