zoukankan      html  css  js  c++  java
  • Object类 糖不苦

    Object类是java语言中的根类,所有类的父类,它里面的所有方法子类都可以使用,一个类没有指定的父类则默认承认继承Object类

    to String()方法返回对象的字符串,返回的内容就是类型和内存把地址值,所以需要重写方法

    equals()方法指的是判断某个对象是否与此对象“相等”,比较的是内存地址,返回true或faluse

    如果比较的话需要重写equals和hashcode方法要注意
    1,重写equals方法必须重写hashcode方法
    2,重写hashcode方法,不需要重写equals方法
    比较两个对象是否为同一个对象,则需要判断地址类型和属性是否一致

    equals()方法

    Object中的equals方法是直接判断this和obj本身的值是否相等,即用来判断调用equals的对象和形参obj所引用的对象是否是同一对象,
    所谓同一对象就是指内存中同一块存储单元,如果this和obj指向的hi同一块内存对象,则返回true,如果this和obj指向的不是同一块内存,则返回false。
    注意:即便是内容完全相等的两块不同的内存对象,也返回false。
    如果是同一块内存,则object中的equals方法返回true,如果是不同的内存,则返回false

          如果希望不同内存但相同内容的两个对象equals时返回true,则我们需要重写父类的equal方法
    
          String类已经重写了object中的equals方法(这样就是比较内容是否相等了)
    

    hashCode()方法

    返回该对象的哈希码值
    该方法用于哈希查找,可以减少在查找中使用equals的次数,重写了equals方法一般都要重写hashCode方法。这个方法在一些具有哈希功能的Collection中用到。
    一般必须满足obj1.equals(obj2)true。可以推出obj1.hash- Code()obj2.hashCode(),但是hashCode相等不一定就满足equals。
    不过为了提高效率,应该尽量使上面两个条件接近等价。
    如果不重写hashcode(),在HashSet中添加两个equals的对象,会将两个对象都加入进去。

  • 相关阅读:
    JavaScript 多个空格替换成1个空格
    「DIARY」NOI2021 小结
    kubernetes常用命令总结
    Qt绘图(使用QPainter)翻转图像的两种方法
    android 11 R framework 新特证 开发备忘
    浏览器的缓存机制
    记el-tree 懒加载复选框回显的坑
    VUE根据文件流下载EXC
    西瓜视频播放器VUE
    推荐系统打散算法--权重
  • 原文地址:https://www.cnblogs.com/wwyydd/p/13933391.html
Copyright © 2011-2022 走看看