常见的API方法之Object(一)
clone():此方法的用途是用来另存一个当前存在的对象。
public class CloneTest {
|
equals():该方法是非常重要的一个方法。一般equals和==是不一样的,但是在Object中两者是一样的。子类一般都要重写这个方法。
看看equals()方法在Object类中的定义: public boolean equals(Object obj){ |
由上可看见,其比较的是地址。但是在String、Double等封装类中。已经重载了Object的equals()方法。于是才会有equals比较内容,==比较地址的说法。
hashCode():是一个本地方法,返回的对象的地址值。但是,想String等重写了hashCode的方法。固才有两者的关系:
- 两个obj,如果equals()相等,hashCode()一定相等
- 两个obj,如果hashCode()相等,equals()不一定相等
String类中重写hashCode ()的代码: public int hashCode() { int h = hash; if (h == 0) { char val[] = value; int len = count; for (int i = 0; i < len; i++) { h = 31*h + val[off++]; } hash = h; } return h; } |
Notify():唤醒在此对象监视器上等待的单个线程。如果有多个线程等待,则随机唤醒一个
notifyAll():唤醒在此对象监视器上等待的所有线程
wait:在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过指定的时间量前,导致当前线程等待
finalize():当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收
getClass(): 返回该Object的运行时类
toString(): 方法在打印对象时被调用,将对象信息变为字符串返回,默认输出对象地址