Java的Object类
Posted mcmx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java的Object类相关的知识,希望对你有一定的参考价值。
Object类:
所有类的直接或间接超类,处在类层次的最高点
包含了所有Java类的公共属性
Object类的主要方法:
public final Class getClass() 获取当前对象所属类的信息,返回Class对象;
public String toString() 返回表示当前对象本身有关信息的字符串对象;
public boolean equals(Obeject obj) 比较两个对象引用是否指向同一对象,是返回ture,否返回flase;
protected Object clone() 复制当前对象,并返回这个副本(对象的复制)
public int hashCode() 返回该对象的哈希代码值
protected void finalize() throws Throwable 在对象被回收时执行通常完成对象的资源释放工作;
相等和同一:
两个对象具有相同的类型,及相同的属性值,则称二者相等(equal)。
如果两个引用变量指向的时同一个对象,则称这两个引用变量同一
两个对象同一,则肯定相等
两个对象相等,不一定同一。
比较运算符“==”判断的是这两个对象是否同一;(判断两个引用是否指向同一个对象)
hashCode方法:
hashCode是一个返回对象散列码的方法;
在一个Java程序的一次执行过程中,如果对象“相等比较”所使用的信息没有被修改的话,同一对象执行hashCode方法每次都应返回同一个整数。在不同的执行中,对象的hashCode方法返回值不必一致(不是同一次执行,对象的hashCode不一定相同)
如果依照equals方法两个对象是相等的,则在这两个对象上调用hashCode方法应该返回相同的整数结果
如果依照equals方法两个对象不想等,并不要求在这两个对象上调用hashCode方法返回值不同。
只要实现的合理,Object类定义的hashCode方法为不同对象返回不同的整数,一个典型的实现是,将对象的内部地址转换为整数返回,但是Java语言并不要求必须这样实现;
clone方法:
用于根据已存在的对象构造一个新的对象,也就是复制对象。
使用clone方法赋值对象:
覆盖clone方法:在Obejct类中被定义为protected,所以需要覆盖为public。(以为每个对象类的内部属性都不一样,所以需要覆盖)实现Cloneable接口;
finalize方法:
在对象被垃圾回收期回收之前,系统自动调用对象的finalize方法;
如果要覆盖finalize方法,覆盖方法的最后必须调用super.finalize。
getClass方法:
final方法,返回一个Class对象,用来带便对象所属的类;
通过Class对象,可以查询类的各种信息:比如名字、超类、实现接口的名字等;
notify、notifyAll、wait方法:
final方法,不能覆盖,这三个方法主要用在多线程程序中;
以上是关于Java的Object类的主要内容,如果未能解决你的问题,请参考以下文章