title: Object类的方法date: 2019-03-26 18:52:26
categories: 代码
tags: java
Object类有哪些方法
Object是所有类的父类,任何类都默认继承Object。
1. clone方法
保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则会抛出CloneNotSupportedException异常
2. getclass方法
final方法,获得运行时类型
3.toString方法
toString()返回一个String对象,用来标识自己 ,使用较多。
4.finalize方法
该方法用于释放资源。因为无法确定该方法什么时候被调用,
5. equals方法
用于确认两个方法是否“相同”。equals方法和 == 不一样( == 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作。 equals用来比较的是两个对象的内容是否相等,由于所有的类都是继承自java.lang.Object类的,所以适用于所有对象,如果没有对该方法进行覆盖的话,调用的仍然是Object类中的方法,而Object中的equals方法返回的却是==的判断。)
6. hashcode方法
此方法返回对象的哈希码值,支持此方法是为了提高哈希表的性能。其实就是对象的地址的十进制表示形式.
该方法用于哈希查找,重写了equals方法一般都要重写hashCode方法。这个方法在一些具有哈希功能的Collection中用到。
7. wait方法
wait方法就是使当前线程等待该对象的锁,当前线程必须是该对象的拥有者,也就是具有该对象的锁。wait()方法一直等待,直到获得锁或者被中断。wiat(long timeout)设定一个超时间隔,如果在规定时间内没有获得锁就返回。
调用该方法后当前线程进入睡眠状态,直到以下事件发生。
(1)其他线程调用了该对象的notify方法
(2)其他线程调用了该对象的notifyAll方法。
(3)其他线程调用了interrupt中断该线程
(4)时间间隔到了
此时该线程就可以调度了,如果是被中断的话就抛出一个InterruptedException异常。
8. notify方法
该方法唤醒在该对象上等待的某个线程
9. notifyAll方法
该方法唤醒在对象上等待的所有线程