Object 类的常用方法
hashcode() 和 equals()
两个属于Object 的类方法,一般会重写
- 如果不重写 hashCode() 返回对象的地址值,equals() 用来比较两个对象的地址值是否一样
- 如果重写,hashCode() 返回对象的哈希值,equals() 比较两个对象的成员信息是否相同
在HashSet集合 中,通过hashCode() 和equals() 保证元素的唯一性
在判断两个对象是否相同时,首先判断两个对象的的哈希值是否相同,不相同则两个对象是不相同的;如果哈希值相同,则继续判断两个对象的元素是否相同,相同则两个对象是相同的,反之则不相同。
toString
返回对象的字符串表现形式,建议所有子类重写这个方法
返回对象的简明扼要的表现形式,比如System.out.println() 调用的就是这个方法
wait 和 notify
wait() 让线程处于等待的状态
notify() 唤醒其他处于等待状态的线程
注意,这两个方法必须要在锁对象下调用,或者在同步里使用。
比如在调用的方法上加上 synchronized 关键字
public synchronized void put(int milk){
if(state){
try {
wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
this.milk=milk;
System.out.println("送奶工将第"+this.milk+"奶放入奶箱");
state=true;
notifyAll();
}