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

 

posted @ 2019-07-10 18:49  国民老公骚颖  阅读(199)  评论(0编辑  收藏  举报