Object类

Java中所有的类都直接或者间接的继承自Object。所以java有一句话是一切接对象。

当我们定义的类没有显示的继承任何类的时候,jvm在编译时会自动默认将该类继承自Object。这个是一个强制性的。所以,通常我们不需要显示的继承Object。

Object方法 

clone()方法

equals(Object obj)方法

finalize()方法

getClass()方法

hashCode()方法

wait() notify()方法

toString()方法

toString()方法


public String toString():

在Object中该方法返回的字符串为该对象的“句柄”。格式为"类名@hashcode"。

java定义Object的toString方法,希望我们在需要的时候可以重写。

该方法的真正意图是返回能够描述该对象的一个字符串。

equals方法


比较两个对象内容是否相等。

Object对该方法的实现就是使用"=="实现的。所以毫无意义。

若要判断两个对象内容是否相同,应重写该方法。定义对象内容的比较规则。

"=="与"equals"的区别:

1. "=="比较是否为同一个对象

2. "equals"比较两个对象内容是否一致

重写equals方法,定义内容相同的比较规则

public boolean equals(Object obj) {
    if(obj == null){
        return false;
    }
    if(this == obj){
        return true;
    }
    if(obj instanceof Point){
        Point p = (Point)obj;
        return this.x == p.x && this.y == p.y;
    }
     return false; 
}

hashcode方法


public int hashcode() 返回一个int值。该方法在具有哈希算法的地方非常有用。

两个对象相同时返回相同的hashCode值

两个对象不同时返回不同的hashCode值

clone方法


public Object clone()

该方法返回当前对象的一个副本。渐层复制实现。

wait notify


参考链接:http://developer.51cto.com/art/201508/487488.htm

       

原文地址:https://www.cnblogs.com/qin-derella/p/6627023.html