Object里面有什么方法

Object里面有什么方法

Object类是一个特殊的类,是所有类的父类,如果一个类没有用extends明确指出继承于某个类,那么它默认继承Object类。这里主要总结Object类中的三个常用方法:toString()、equals()、hashCode()。

1.取得对象信息的方法:toString()
该方法在打印对象时被调用,将对象信息变为字符串返回,默认输出对象地址。

 class People{
    private String name;
    public People(String name){
       this.name = name;
    }
 }
 class TestDemo{
    public static void main(String[] args){
        People p = new People("zs");
        System.out.println(p);//打印:ClassNotes.People@15db9742
        System.out.println(p.toString());//打印:ClassNotes.People@15db9742
    }
 }

上述结果看出编译器默认调用toString()方法输出对象,但输出的是对象的地址,我们并不能看懂它的意思。那么就要通过重写Object类的toString()方法来输出对象属性信息。
2. 对象相等判断方法:equals()
该方法用于比较对象是否相等,而且此方法必须被重写。Object源码底层equals方法的实现默认==比较地址

3. 对象签名:hashCode()
该方法用来返回其所在对象的物理地址(哈希码值),常会和equals方法同时重写,确保相等的两个对象拥有相等的.hashCode。

4. getClass()
返回此 Object 的运行类的Class对象。Class对象保存当前类的类信息。

5. clone()
创建并返回此对象的一个副本。

6. notify()
唤醒在此对象监视器上等待的单个线程。

7. notifyAll()
唤醒在此对象监视器上等待的所有线程。

8. wait(long timeout)
在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过指定的时间量前,导致当前线程等待。

9. wait(long timeout, int nanos)
在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量前,导致当前线程等待。

10. wait()
用于让当前线程失去操作权限,当前线程进入等待序列

11. finalize()
当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。

   **本人才疏学浅,如有错误,烦请指出,谢谢!**
发布了68 篇原创文章 · 获赞 2 · 访问量 1693

猜你喜欢

转载自blog.csdn.net/weixin_45923633/article/details/104995905