zoukankan      html  css  js  c++  java
  • Java 常用对象-Object类

    2017-10-31 23:42:08

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

    或者说,每个类都直接或者间接继承了Object类。

    常用方法:

    • hashCode(),返回该对象的哈希码值。支持此方法是为了提高哈希表(例如 java.util.Hashtable 提供的哈希表)的性能。[可自动生成]

    实际上,由 Object 类定义的 hashCode 方法确实会针对不同的对象返回不同的整数。(这一般是通过将该对象的内部地址转换成一个整数来实现的,但是 JavaTM 编程语言不需要这种实现技巧)

    哈希值是根据哈希算法计算出来的值,这个值和地址值有关,但不是地址值。

    • getClass(),返回此 Object 的运行时类。返回的 Class 对象是由所表示类的 static synchronized 方法锁定的对象。
    • toString(),返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。[可自动生成]

    Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:

    getClass().getName() + '@' + Integer.toHexString(hashCode())
    
    • equals(Object obj):指示其他某个对象是否与此对象“相等”。[可自动生成]

    Object 类的 equals 方法实现对象上差别可能性最大的相等关系

    注意:当此方法被重写时,通常有必要重写 hashCode 方法,以维护 hashCode 方法的常规协定,该协定声明相等对象必须具有相等的哈希码。

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

    boolean equals(Object obj)
    {
      if(this==obj) return true;
      if(!(obj instanceof Student)) return false;
      Student s =(Student) obj;
      return this.name.equals(obj.name)&&this.age==age;     
    }
    
    • finalized():当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。一般不使用,因为无法确认何时能够被收回。
    • clone():创建并返回此对象的一个副本。Object 类本身不实现接口 Cloneable,所以在类为 Object 的对象上调用 clone 方法将会导致在运行时抛出异常。
    public class Student implements Cloneable
    才能使用clone()方法
    
  • 相关阅读:
    设计模式
    Linux 使用 script 分享
    动态代理中的 UndeclaredThrowableException 以及其他异常
    浅析 Spring 异常处理
    SLAM中的优化理论(二)- 非线性最小二乘
    SLAM中的优化理论(一)—— 线性最小二乘
    卡尔曼滤波器推导与解析
    Python学习(一) —— matplotlib绘制三维轨迹图
    ZED 相机 && ORB-SLAM2安装环境配置与ROS下的调试
    [转载]如何使用USSD命令设置呼叫转移
  • 原文地址:https://www.cnblogs.com/hyserendipity/p/7764588.html
Copyright © 2011-2022 走看看