这个是我找到的
/*
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);
}
|