众所周知Java中的Object类一共有9种方法,并且每一个类都有继承类,如果不写extends关键字,默认继承Object,如果写了extends则继承后面那个父类:
Object类中的方法:
-
hashCode() 将对象在内存中的地址经过计算得到一个int整数
public native int hashCode();native修饰的是本地方法,底层使用C语言实现的。 -
equals() 用来比较两个对象的内容 Object默认效果是==
==可以比较基本类型(比较值) 可以比较引用类型(比较地址)
equals方法时Object类中继承过来的方法 默认效果比较地址
如果想要改变其规则 可以进行方法重写
public boolean equals(Object obj){
return (this == obj);
} -
toString() 打印输出时将对象变成String字符串
public String toString(){
return this.getClass().getName()+"@"+Integer.toHexString(this.hashCode());
} -
getClass() 获取对象对应类的类映射(反射)
-
wait() 线程进入挂起等待状态 存在方法重载
-
notify() 线程唤醒
-
notifyAll() 唤醒所有
-
finalize() 权限修饰符是protected 在对象被GC回收的时候 默认调用执行的方法;
面试是经常会被问道final,finally,finalize的区别。
protected void finalize(){} -
clone() 权限修饰符是protected 为了克隆对象