• 8.认识Object类


    1. 什么是Object类
      1. 类层次结构的根类
      2. 所有类都直接或间接继承自该类
    2. 它的常用属性与方法
      1. finalize():回收对象时调用此方法
        protected void finalize()
        throws Throwable
        {}

      2. getClass():获取对象字节码描述类
        public final native Class<?> getClass();

      3. hashCode():获取对象哈希值,实际是对象在内存十进制的表示

      4. toString():返回对象字符串表示形式
        public String toString()
        {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());//转换成16进制表示
        }
        当然这种输出意义不大,通常会重写此方法,让他输出类成员信息

      5. equals(Object paramObj):比较两个对象内存地址是否相等,底层是用判断的
        public boolean equals(Object paramObject)
        {
        return this == paramObject;
        }
        一般会重写equals方法,不然与
        无区分
        1.字符串重写此方法后:用于判断两字符串内容是否相同
        public boolean equals(Object paramObject)
        {
        if (this == paramObject) {
        return true;
        }
        if ((paramObject instanceof String))
        {
        String str = (String)paramObject;
        int i = value.length;
        if (i == value.length)
        {
        char[] arrayOfChar1 = value;
        char[] arrayOfChar2 = value;
        for (int j = 0; i-- != 0; j++) {
        if (arrayOfChar1[j] != arrayOfChar2[j]) {
        return false;
        }
        }
        return true;
        }
        }
        2.对象重写equals方法,可按值比较
        /**
        * 按 value 比较
        */
        @Override
        public boolean equals(Object obj) {
        if (this == obj)
        return true;
        if (obj == null)
        return false;
        if (getClass() != obj.getClass())
        return false;
        EnumEmergencyPlanLevel other = (EnumEmergencyPlanLevel) obj;
        if (value == null) {
        if (other.value != null)
        return false;
        } else if (!value.equals(other.value))
        return false;
        return true;
        }

      6. equals()与==的区别

        1. 前者只能比较引用数据类型
        2. 前者可以根据需要重写
        3. 后者比较值类型时,比较的值是否相同
        4. 后者比较引用数据类型时:比较的是内存地址是否相同(即是否是同一对象)
  • 相关阅读:
    springboot整合mybatis采用druid连接池对mysql,hive双数据源整合并打包
    csv数据导入kudu
    Hive数据导入导出的几种方式
    【纪中受难记】——Day20:祈祷落幕时
    2017第八届蓝桥杯C/C++ B组省赛 —— 第三题:承压计算
    2017第八届蓝桥杯C/C++ B组省赛 —— 第一题:购物单
    2017第八届蓝桥杯C/C++ B组省赛 —— 第一题:购物单
    位运算的奇巧淫技
    位运算的奇巧淫技
    数据结构和算法 —— 图
  • 原文地址:https://www.cnblogs.com/River111/p/9593223.html
Copyright © 2020-2023  润新知