Object类是Java中所有类的始祖,在Java中每个类都是由它扩展而来的。但不需要明写:
public class String extends Object
Object类具有以下特性:
对于任何一个类,如果没有明显的指出它的父类,那么就默认它的父类是Object类
可以使用Object类型的变量引用任何类型的对象
Object obj = new Integer(666);Object obj = new String("ABC");...
但是Object变量引用的对象,只能当做是该对象的持有者,若想执行对象内部的操作还需要进行类型转换
Java中只有8个基本类型(int, float, double, boolean, byte, char, long, short)不是对象,也就是Object类不能引用这些类型
所有的数组类型,不管是对象数组还是基本类型数组都扩展了Object类
Object中的方法:
1. Object() //默认构造方法
2. clone() //创建并返回此对象的一个副本。
3. equals(Object obj) //指示某个其他对象是否与此对象“相等”。
4. finalize()
//当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。 5. getClass() //返回一个对象的运行时类。
6. hashCode() //返回该对象的哈希码值。
7. notify() //唤醒在此对象监视器上等待的单个线程。
8. notifyAll() //唤醒在此对象监视器上等待的所有线程。
9. toString() //返回该对象的字符串表示。
10. wait()
//导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法。 11. wait(long timeout)
//导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过指定的时间量。 12. wait(long timeout, int nanos)
导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量。 关于equals方法
Java语言规范要求equals方法具有下面的特点:
自反性:对于任何非空引用值 x,x.equals(x) 都应返回 true。
对称性:对于任何非空引用值 x 和 y,当且仅当 y.equals(x) 返回 true 时,x.equals(y) 才应返回 true。
传递性:对于任何非空引用值 x、y 和 z,如果 x.equals(y) 返回 true,并且 y.equals(z) 返回 true,那么 x.equals(z) 应返回 true。
一致性:对于任何非空引用值 x 和 y,多次调用 x.equals(y) 始终返回 true 或始终返回 false,前提是对象上 equals 比较中所用的信息没有被修改。
对于任何非空引用值 x,x.equals(null) 都应返回 false。
从这里看出,上面的例子是Java规范的equals方法的标准实现,推荐用上面例子的写法实现类的equals方法
-引用来自百度百科