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如果重写的话,重写的规则:返回当前对象的属性信息。

     

  • 相关阅读:
    赵炯博士《Linux内核完全注释》
    0.11内核rd_load@ramdisk.c中memcpy函数好像有bug
    Can't find kernel text map area from kcore
    Could not allocate 40960 bytes percpu data
    镜像
    H3C S6800交换机 BCM shell命令
    Bean的作用域
    Bean之间的关系
    Bean的自动装配
    Java8 Hash改进/内存改进
  • 原文地址:https://www.cnblogs.com/zmy-520131499/p/11165836.html
Copyright © 2011-2022 走看看