object学习

 

1 equals表示逻辑相等,子类进行覆盖时,需要遵守自反性、传递性、对称性、一致性、非空性等规约。

否则在使用集合类时会出现莫名的问题。

==是指引用指向的对象是同一个。如果没有负载equals的话,那么equals的作用和==一样。

参与计算的域称为关键域

2 覆盖equal必须覆盖hashcode,否则hash数据结构会出问题。equal的对象散列码也应该一样,equals不一样的对象,散列码也可以一样。最好的散列是简单一致散列,尽可能把数据散列到不同的桶里面,性能最好

3 实现Cloneable,提供clone()方法,表明返回逐域复制的新实例。一般实现是调用super.clone()。逐域复制容易出错,特别是引用类型域的深度复制,不建议使用。

4 实现comparable,用于泛型算法

你可能感兴趣的:(java)