首先看代码:
import java.util.ArrayList;
/**
* @author ayi
* @version 创建时间:Oct 8, 2008 1:10:01 PM
* 类说明 :测试对象添加到ArrayList容器中,是对象复制,还是引用的传递;以及在toArarry()又是怎么样。
*/
public class TestArarryCopy {
public static void main(String args[]){
Person p1=new Person();
ArrayList<Person> vect=new ArrayList<Person>();
Person[] pArarry;
vect.add(p1);
if(vect.get(0)==p1){
System.out.println("对象添加到ArrayList容器中是引用的传递;");
}else{
System.out.println("对象添加到ArrayList容器中是对象的复制;");
}
pArarry=(Person[])vect.toArray(new Person[0]);
if(pArarry[0]==p1){
System.out.println(" 在toArray()中是引用的传递;");
}else{
System.out.println("在toArray()中是对象的复制;");
}
}
}
/**
* 一个用来使用的对象
* @author ayi
*
*/
class Person {
}
结果:对象添加到ArrayList容器中是引用的传递;在toArray()中也是引用的传递。在Vector中也是一样的。对于其它的,要判断是对象复制还是引用传递,都可以判断对象的引用是否相等来简单的判别。