JAVASE总结--Object

来源:互联网 发布:淘宝茶叶排名 编辑:程序博客网 时间:2024/06/02 07:28

Object类是所有Java类的祖先。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。

在不明确给出超类的情况下,Java会自动把Object作为要定义类的超类。

      可以使用类型为Object的变量指向任意类型的对象。

      Object类有一个默认构造方法pubilc Object(),在构造子类实例时,都会先调用这个默认构造方法。

 

 

 

Object常用方法

public boolean equals(Object obj)指示某个其他对象是否与此对象相等

public native int hashCode()返回该对象的哈希码值。

public String toString()返回该对象的字符串表示。

public final native void notify()唤醒在此对象监视器上等待的单个线程。

public final native void notifyAll()唤醒在此对象监视器上等待的所有线程。

public final void wait()导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法。

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

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

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

==与equals的区别:

 

==表示的是变量值完成相同(对于基础类型,地址中存储的是值,引用类型则存储指向实际对象的地址);

equals表示的是对象的内容完全相同,此处的内容多指对象的特征/属性

 

两个对象相等 <=>  equals()相等  => hashCode()相等。因此,重写equlas()方法必须重写hashCode()方法,以保证此逻辑严格成立,同时可以推理出:hasCode()不相等 => equals()不相等 <=> 两个对象不相等。

toString()是由对象的类型和其哈希码唯一确定,同一类型但不相等的两个对象分别调用toString()方法返回的结果可能相同。

0 0
原创粉丝点击