JAVA的克隆机制,存在的最大目的是为了防止aliasing混淆。在《THINKING IN JAVA》第三版中有提到序列化状态下,使用clone()效率将会高于ObjectInputStream/ObjectOutputStream。
最近我和同事在研究这么一种情况:
假设我有这样一个方法:
Vector v = new Vector();
int k = 0;
while( true ) {
MagUnitVO muv = new MagUnitVO();
muv.setID("10");
muv.setName("abc");
v.add(k, muv);
k++;
}
其中MagUnitVO是一个标准的javabean,假设while循环很多次,比如100次。我同事认为,用克隆方式可以防止不停地构造对象,以提高效率。
Vector v = new Vector();
MagUnitVO muv = new MagUnitVO();
int k = 0;
while( true ) {
muv.setID("10");
muv.setName("abc");
muv.clone()
v.add(k, muv);
k++;
}
请问各位高手,如果这样真能提高效率,为什么?按照《Thinking in java》里的讲解,所谓克隆技术,就是在内存里分配与需要克隆的对象一样大的空间,然后将需要克隆的对象的值,复制给新的对象。