Java 数组拷贝的几种方式

本文详细介绍了Java中数组拷贝的四种方式:clone、System.arraycopy、Arrays.copyOf和Arrays.copyOfRange,包括各自的用法和示例。同时提到了对象的深度拷贝实现,通过实现Cloneable接口或使用序列化方法,但警告深度拷贝通常由于性能问题应谨慎使用。
摘要由CSDN通过智能技术生成

目前在Java中数据拷贝提供了如下方式:

clone
System.arraycopy
Arrays.copyOf
Arrays.copyOfRange
下面分别介绍他们的用法

1、clone 方法
clone方法是从Object类继承过来的,基本数据类型(int ,boolean,char,byte,short,float ,double,long)都可以直接使用clone方法进行克隆,注意String类型是因为其值不可变所以才可以使用。

int 类型示例
int[] a1 = {1, 3};
int[] a2 = a1.clone();

a1[0] = 666;
System.out.println(Arrays.toString(a1)); //[666, 3]
System.out.println(Arrays.toString(a2)); //[1, 3]

String类型示例
String[] a1 = {“a1”, “a2”};
String[] a2 = a1.clone();

a1[0] = “b1”; //更改a1数组中元素的值
System.out.println(Arrays.toString(a1)); //[b1, a2]
System.out.println(Arrays.toString(a2)); //[a1, a2]

2、System.arraycopy
System.arraycopy方法是一个本地的方法,源码里定义如下:

public static native void arraycopy(Object src, int srcPos, Object dest, int desPos, i

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值