Object类

来源:互联网 发布:clock算法 编辑:程序博客网 时间:2024/06/18 17:05

Object类是所有类的父类

主要有以下方法:

equals(): 方法内部判断两个对象是否==相等,也就是判断对象的地址是否相等,如果相等那么hashcode一定相等。这个方法可以被重写,String重写了这个方法,String的equals()方法判断的是两个字符串的值知否相等。

hashCode(): 该方法为本地方法,返回的是该对象的hashCode值,hashcode是jdk根据对象的地址或者字符串或者数字算出来的int类型的数值,hashcode值相等,equeals不一定相等,因为hashcode值并不一定是内存地址。HashMap中的put方法是给HashMap添加新的元素,会先调用hashCode()方法获取要添加元素的hashcode值,然后查看table中是否存在该hashcode值,若存在则调用equals()方法确定是否存在该元素,若存在,则更信value值,若不存在则直接添加。从这里可以看出来,hashcode的存在,是为了减少equals的调用,从而提高程序的效率。

 ★equals相等,hashcode必须相等。 ★hashcode相等,equals不一定相等。 ★根据以上两条准则,所以重写equals()方法时需要重写hashcode()方法。 ★只要equals比较操作用到的信息没变,那么对同一个对象调用多次,hashcode必须始终如一的返回同一个整数。如果对象中的数据易变,则在重写equals和hashcode方法的时候不要依赖该数据。

http://www.cnblogs.com/dolphin0520/p/3681042.html

toString(): 返回对象的字符串格式:类名@哈希码值,一般类都会将他重写。

getClass(): 本地方法,返回一个运行时类。

clone(): 克隆,复制一个新的对象并返回。

finalize(): 垃圾回收器认为该对象是垃圾对象时会调用该方法,子类可以通过重写该方法来达到资源释放的目的。任何对象该方法只会被调用一次。

notify(): 本地方法,唤醒一个当前对象监视上等待的线程。

notifyAll(): 本地方法,唤醒当前对象监视上所有等待的线程。

wait(): 调用该方法会出现中断异常,需捕获。

原创粉丝点击