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方法,不能覆盖,这三个方法主要用在多线程程序中;

猜你喜欢

转载自www.cnblogs.com/mcmx/p/9121582.html