zoukankan      html  css  js  c++  java
  • equals与== 和toString方法

    /**
     * equals()方法的使用
     * 
     * 1.java.lang.Object类中的equals()方法的定义:
     *   
     *   public boolean equals(Object obj) {
            return (this == obj);
         }
     * 
     *   说明:Object类中equals()比较两个对象的引用地址是否相同。(或:比较两个引用是否指向同一个对象实体)
     * 
     *  2. 像String、Date、File、包装类等重写了Object类中的equals()方法,比较两个对象中的实体内容是否相等。
     *  
     *  3. 对于自定义类来讲,如果没有重写Object类中的equals()方法,调用equals()方法时,仍然比较两个对象的引用地址
     *  是否相同。
     *     
     *  4. 一般情况下,在开发中一旦调用了自定义类的equals(),通常都是重写以后的equals()方法。
     *  
     *  5.重写equals()的规则:比较两个对象的属性是否都相等。
     * 
     * 
     *  面试题:== 和 equals() 区别?
     *    
     *    ==:使用范围:可以操作基本数据类型  和  引用数据类型
     *       如果操作的是基本数据类型:比较两个基本数据类型的变量对应的值是否相等。
     *       如果操作的是引用数据类型:比较两个引用的地址是否相同。
     *    
     *    
     *    equals():使用范围:只适用于引用数据类型
    
    
    * 1.java.lang.Object类中toString()定义如下:
       public String toString() {
            return getClass().getName() + "@" + Integer.toHexString(hashCode());通过反射或渠道当前对象的 的名字+当前对象所在位置,
    
           当前对象位置算法:通过hashcode方法算出然后转换成16进制,全类名+存在于堆空间的地址
        } 
     * 2. 当我们打印一个对象的引用时,实际上就是调用了其toString()
     * 3. 像String、Date、File、包装类等重写了Object类中的toString(),返回其代表的具体内容
     * 4. 对于自定义类而言,如果我们没有重写Object类中的toString()方法,则返回的仍然是地址值。
     * 5如果重写的话,重写的规则:返回当前对象的属性信息。

     

  • 相关阅读:
    [eslintpluginvue] [vue/nounusedvars] 'scope' is defined but never used.
    Vue项目中添加锁屏功能
    前端文档汇总(含代码规范、开发流程、知识分享,持续更新)
    vscode格式化Vue出现的问题
    下盘不稳 被忽视的项目风险
    项目沟通中的一点经验心得
    如何才能更合理地分配项目奖金?
    关于企业的薪酬体系之思考
    导致项目失败的两大隐形杀手
    如何让项目总结会议更有效果?
  • 原文地址:https://www.cnblogs.com/zmy-520131499/p/11165836.html
Copyright © 2011-2022 走看看