1) clone():
返回这个对象的一个副本。
2) equals(Object obj):
public boolean equals(Object obj) {
//①
首先判断是不是同一个对象
if (this == obj) {
return true;
}
//②
其次判断是不是属于同一个类
if (obj != null && Person.class == obj.getClass()) {
//
如果
final
修饰了
Person
类,那么
Person.class == obj.getClass()
也可以改为
obj instanceOf Person
。可以参考
String
源码的
equals
()方法。
//③
最后强制转换后,判断是否具有相同
id
Person personObj = (Person) obj;
if (this.getId() == personObj.getId()) {
return true;
}
}
return false;
}
3) finalize():
不要主动调用这个方法,这个方法交给垃圾回收机制调用;该方法何时被调用,是否会被调用具有不确定性;执行该方法时出现异常,垃圾回收机制不会报告异常,程序继续执行。
4) getClass():
5) hashcode():
如果
equals
()返回
true
,那么
hashCode
()的值也应该相等,反之亦然。如果
equals
()返回
true
,如果
equals
()返回
true
,那么
hashCode
()的值也应该相等
hashCode
()的值不相等,就会在集合对象中存储多个内容重复的对象。如果
hashCode
()的值相等,但是
equals
()返回
false
,就会在存储内容不同的对象时发生地址冲突。
6) notify():
7) notifyAll():
8) toString():
这个方法返回一个字符串:
getClass().getName() + ‘@’ + Integer.toHexString(hashCode())
9) wait():
10) wait(long timeout):
11) wait(long timeout, int nanos):