zoukankan      html  css  js  c++  java
  • == 与 equals()方法的区别

    * 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-5
    *
    *
    *
    * @author shkstart 邮箱:shkstart@126.com
    * @version 创建时间:2017年7月26日 下午2:18:41
    *
    */
    public class EqualsTest {
    public static void main(String[] args) {
    String str1 = new String("atguigu");
    String str2 = new String("atguigu");

    System.out.println(str1 == str2);//false

    System.out.println(str1.equals(str2));//true

    Date date1 = new Date(12141412L);
    Date date2 = new Date(12141412L);

    System.out.println(date1.equals(date2));//true


    Customer c1 = new Customer("Tom", 12);
    Customer c2 = new Customer("Tom", 12);

    System.out.println(c1.equals(c2));//false--->true

    System.out.println(c1 == c2);//false

    int[] arr1 = new int[]{1,2,3};
    int[] arr2 = new int[]{1,2,3};
    System.out.println(arr1.equals(arr2));
    System.out.println(arr1.equals(arr1));

    System.out.println("*************************");

    // ==
    int num1 = 10;
    int num2 = 10;
    System.out.println(num1 == num2);//true
    double d1 = 10.0;
    System.out.println(num1 == d1);//true

    char c = 10;
    System.out.println(num1 == c);//true

    char cc = 'A';
    int num = 65;
    System.out.println(cc == num);//true

    // System.out.println(true == num);//编译不通过

    // System.out.println("hello" == new java.util.Date()); //编译不通过


    }
    }

  • 相关阅读:
    接口运用实例
    C# Lambda表达式运用
    图片转换图片流方法(二进制流)
    简单的winform编辑器
    C# OO(初级思想)。
    MVC知识点
    提高sql查询效率
    DataRead 和DataSet区别
    JavaScript内置对象与原生对象【转】
    Cookie,Sesstion,Application 缓存。
  • 原文地址:https://www.cnblogs.com/loushiqiang/p/7252924.html
Copyright © 2011-2022 走看看