阅读笔记
原文:http://blog.csdn.net/column/details/chenssy-javaimpr.html
1、clone() 只是浅拷贝,深拷贝用 Serializable
public class CloneUtils {
public static <T extends Serializable> T clone(T obj){
T cloneObj = null;
try {
//写入字节流
ByteArrayOutputStream out = new ByteArrayOutputStream();
ObjectOutputStream obs = new ObjectOutputStream(out);
obs.writeObject(obj);
obs.close();
//分配内存,写入原始对象,生成新对象
ByteArrayInputStream ios = new ByteArrayInputStream(out.toByteArray());
ObjectInputStream ois = new ObjectInputStream(ios);
//返回生成的新对象
cloneObj = (T) ois.readObject();
ois.close();
} catch (Exception e) {
e.printStackTrace();
}
return cloneObj;
}
}
obj必须实现Serializable
2、hashCode 用途:与对象存储的物理位置有关
3、TreeMap 的 实现 :红黑树 (一种自平衡的排序二叉树)
4、TreeSet 的 实现:基于TreeMap实现的,也就是相当于基于红黑树实现
5、同样,HashSet 是基于HashMap 实现的。