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

     1      /**
     2          * Object类的equals()的声明规则:
     3          * public Boolean equals(Object obj)
     4          * 
     5          * Object类的equals()方法比较规则:
     6          * 当参数obj引用的对象与当前对象为同一对象时,返回true,否则范围false
     7          */
     8         
     9         Animal animal1 = new Dog();
    10         Animal animal2 = new Cat();
    11         Animal animal3 = animal1;
    12         
    13         System.out.println(animal1==animal2); //打印false
    14         System.out.println(animal1.equals(animal2)); //打印false
    15         
    16         System.out.println(animal1==animal3); //打印true
    17         System.out.println(animal1.equals(animal3)); //打印true
    18         
    19         /**
    20          * String,Date,Integer,Double的equals()已被覆盖,比较规则:
    21          * 如果两个对象的类型一致,并且内容一致,则返回true
    22          * 
    23          * 此时,==和equals()区别总结:
    24          * ==:比引用,一样为true
    25          * ==:比数据类型和内容一样为true
    26          */
    27         
    28         Integer int1 = new Integer(1); 
    29         Integer int2 = new Integer(1);
    30         
    31         String str1 = new String("Hello");
    32         String str2 = new String("Hello");
    33         
    34         System.out.println(int1==int2);//打印false
    35         System.out.println(int1.equals(int2));//打印true
    36         
    37         System.out.println(str1==str2);//打印false
    38         System.out.println(str1.equals(str2));//打印true
    39         
    40         /**
    41          * 注意:类型转换之后,引用的地址不变
    42          */
    43         Boolean b1 = new Boolean(true);
    44         Object obj = (Object)b1;
    45         if(obj == b1)  //强转之后,obj和b1的地址不变
    46             if(obj.equals(b1))
    47                 System.out.println("a");  //打印a
    48             else
    49                 System.out.println("b");
    50         else
    51             if(obj.equals(b1))
    52                 System.out.println("c");
    53             else
    54                 System.out.println("d");
  • 相关阅读:
    线程池的工作原理
    并发处理之master-worker 模式
    Parrot os引导修复
    使用datax mongodb导数据到postgresql数据库遇到访问权限问题
    10、Flink高可用HA
    9、Standalone集群测试运行
    8、Flink Standalone工作流程
    7、Flink Local模式安装部署
    java读取word文档的文字内容
    对文件内容就行修改-java代码
  • 原文地址:https://www.cnblogs.com/x_wukong/p/3620367.html
Copyright © 2011-2022 走看看