美文网首页
object类的概述

object类的概述

作者: gyhdx | 来源:发表于2019-04-19 22:08 被阅读0次

object类的概述

object类是类层次结构的根类,每个类都使用object作为超类。

即每个类都直接或间接的继承object类。

object类中方法介绍

hashCode

public int hashCode():返回对象的哈希码值。

​ 注意:哈希值是根据哈希算法计算出来的一个值,该值与地址值有关,但不是实际的值。可理解为地址值。

getClass

public final Class<?> getClass():返回object运行时类,得到一个Class对象。返回的 Class 对象是由所表示类的 static synchronized 方法锁定的对象。

​ 在Class类中有getname()方法以 String 的形式返回此 Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称。

toString

public String toString():返回该对象的字符串表示。
toString方法返回一个字符串,它的值等于: 
getClass().getName() + '@' + Integer.toHexString(hashCode())
    
ps:Integer.toHexString()为Integer类下一静态方法,
public static String toHexString(int i):以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。

源码:
public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }

但toString方法返回的信息是无意义的。所以建议所以子类重写改方法。

重写的格式为:把所有成员变量值返回即可。但这样不是最好,自动生成即可。

class Test{
  int num;
    
  @Override
  public String toString() {
      return "Test [num=" + num + "]";
  }
}

直接输出一个对象的名称,就是调用改对象的toString()方法。

equals

public boolean equals(Object obj):指示其他某个对象是否与此对象“相等”。
源码:
public boolean equals(Object obj) {
return (this == obj);
}

==:

​ 基本类型:比较值是否相等。

​ 引用类型:比较其地址值是否相等。

该方法,默认情况比较的是地址值,但是比较地址值意义不大,所以要重写改方法。

在方法重写时比较对象的成员变量值是否相同

重写代码优化:提高效率,提高程序健壮性。

要想做到最好优化还是自动生成。(自动生成时会和hascode()方法一起生成。)

class Test{
  int num;
  String sfa;

  @Override
  public int hashCode() {
      final int prime = 31;
      int result = 1;
      result = prime * result + num;
      result = prime * result + ((sfa == null) ? 0 : sfa.hashCode());
      return result;
  }

  @Override
  public boolean equals(Object obj) {
      if (this == obj)
          return true;
      if (obj == null)
          return false;
      if (getClass() != obj.getClass())
          return false;
      Test other = (Test) obj;
      if (num != other.num)
          return false;
      if (sfa == null) {
          if (other.sfa != null)
              return false;
      } else if (!sfa.equals(other.sfa))
          return false;
      return true;
  }
}

注:此为eclipse生成可能与idea生成的有所不同,但效果一样。

finalize

protected void finalize() throws Throwable :当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。

clone

protected Object clone() throws CloneNotSupportedException:创建并返回此对象的一个副本。“副本”的准确含义可能依赖于对象的类。

Cloneable:此类实现了Cloneable接口,以示Object.clone()方法合法的进行对该类的按字段复制。

​ Cloneable是一个标记接口,表明实现该接口的类可以实现对象的复制。

相关文章

  • Java基础语法_Day17

    一、Object类 & System类 Object类 概述Object类是Java语言中的根类,即所有类的父类。...

  • object类的概述

    object类的概述 object类是类层次结构的根类,每个类都使用object作为超类。即每个类都直接或间接的继...

  • 2020-08-18--Java--day01【Object类、

    主要内容 Object类 Date类 DateFormat类 Calendar类 1.Object类 1.1概述 ...

  • Java中Object类

    Object类的概述 类 Object 是类层次结构的根类。 每个类都使用 Object 作为超类。 所有的类都直...

  • Java基础05Java API

    Java 基础04多线程 常用类 Object类:lang包下; 概述:Object是类层次结构的根类。所有的类都...

  • Object类

    Object类的概述 类层次结构的根类(每个类都使用Object类作为超类,所有对象(包括数组)都实现这个方法) ...

  • Java学习笔记 11 - Object、String、Stri

    本文主要内容1、Object2、String3、StringBuilder 01 Object类 概述 1、特点类...

  • Object类、常用API

    第一章 Object类 1.1 概述 java.lang.Object类是Java语言中的根类,即所有类的父类。它...

  • jdk源码分析(一)——Object类

    一.概述 Object类是java中所有类的父类,所有类默认(而非显式)继承Object。这也就意味着,Objec...

  • Java基础:Object类中的方法解析

    概述 Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类。Object类是Java中唯一没有...

网友评论

      本文标题:object类的概述

      本文链接:https://www.haomeiwen.com/subject/ujljyqtx.html