java 数组的拷贝 对象数组的拷贝 System.arraycopy函数

/*
java 数组的操作 System类的arraycopy静态函数用于数组拷贝 数组是不能越界的
对象数组的复制实际上是复制的引用的拷贝 也就是对象的地址
*/

class Point
{
int x;
int y;
Point(int x,int y)
{
this.x=x;
this.y=y;
}
}
class Test
{
public static void main(String []args)
{
/*int a[]=new int[]{1,2,3,4,5};
int b[]=new int[5];
System.arraycopy(a,0,b,0,a.length); //5个参数 原数组 起始index 数组2 起始index 拷贝长度
for(int n=0;n<b.length;n++)
{
System.out.println(b[n]);
}
*/
Point a[]=new Point[]{new Point(1,2),new Point(3,4),new Point(3,9)};
Point b[]=new Point[3];
System.arraycopy(a,0,b,0,3); //拷贝的是对象的引用 修改拷贝一样会修改原来数据
for(int n=0;n<a.length;n++)
{
System.out.println("x="+b[n].x+",y="+b[n].y);
}

//对拷贝进行修改会修改原来数据
b[1].x=9;
b[2].x=5;
b[0].x=7;
for(int n=0;n<a.length;n++)
{
System.out.println("x="+a[n].x+",y="+a[n].y);
}








}






}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值