JAVA中的Object类介绍
Object概述
类Object是类层次结构的根类。每个类都是用Object作为超类。所有对象(包括数组)都实现这个类的方法,就是说Object是所有java类的超类,如果一个java类没有显示的声明它的父类是谁,那么隐含的就是extends Object;
构造方法
public Object(){}
任何一个类都会调用这个方法,访问子类构造方法首先会访问父类无参的构造方法
Object常用方法
hashCode方法
实际上,由object类定义的hashCode方法确实会针对不同的对象返回不同的整数。
(这一般是通过将该对象的内部地址转换成一个整数来实现的)
getClass方法
返回此Object的运行时类<反射中我们会详细介绍Class>
public final native Class<?> getClass();
toString方法
返回该对象的字符串表示
public String toString(){
return this.getClass().getName()+"@"+Integer.toHexString(hashCode());
}
toString方法默认返回的是全类路径名称+@+hashCode的十六进制
System.out.println(u1);
System.out.println(u2);
输出语句输出一个应用类型的时候,默认调用了运用类型的toString方法输出
因为默认的toString方法输出的内容并没有太大的意义,而且toString方法本身就是Object中的一个普通的成员成员方法,所以我们可以尝试重写方法,
equals方法
指示其他某个对象是否与此对象“相等”。
public boolean equals(Object obj){
return (this == obj);
}
通过源码我们发现,Object方法中的equals方法比较的是地址值,比较两个对象是否相等,比较地址其实没有太大的意义。那么我们可以根据我们自己的需求来重写该方法
clone方法
创建并返回对象的一个副本
protected native Object clone() throw CloneNotSupportedException;
finalize方法
当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。