Object类是Java中类层次的根类,是每个类的超类,无论是对象还是数组都实现这个类的方法;也就是说Object是所有的类的父类。
常用方法
- equals(),hashCode()
- wait(),wait(long),wait(long,int),notify(),notifyAll()
- toString(),getClass()
equals(),hashCode()
==:用来比较值是否相等
equals:用来比较指向的字符串对象所存储的字符串是否相等。
(==)和equals()的区别:
1.1 对于==,如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等;
1.2 如果作用于引用类型的变量,则比较的是所指向的对象的地址
2.1 对于equals方法,注意:equals方法不能作用于基本数据类型的变量
2.2 如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址;
2.3 诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容。
** hashCode()**
返回该对象的hash码值。默认情况下,该方法会根据对象的地址来计算。
不同对象的 hashCode() 的值一般是不相同。但是,同一个对象的hashCode() 值肯定相同。(就好像身份证号一样,两个人的身份账号可能相同,但是一个人的身份证号肯定是不会变的~)
hashcode() 和 equals() 的区别
1、如果两个对象equals,Java运行时环境会认为他们的hashcode一定相等。
2、如果两个对象不equals,他们的hashcode有可能相等。
3、如果两个对象hashcode相等,他们不一定equals。
4、如果两个对象hashcode不相等,他们一定不equals。
toString(),getClass()
- toString()返回一个String对象,用来标识自己
- getClass()返回一个Class对象。
wait(),wait(long),wait(long,int),notify(),notifyAll()
- 这几个函数体现的是Java的多线程机制
- 在使用的时候要求在synchronize语句中使用
- wait()用于让当前线程失去操作权限,当前线程进入等待序列
- notify()用于随机通知一个持有对象的锁的线程获取操作权限
- notifyAll()用于通知所有持有对象的锁的线程获取操作权限
- wait(long) 和wait(long,int)用于设定下一次获取锁的距离当前释放锁的时间间隔