0.Java进阶补充

1. Objects类

1.1Objects.equals(a,b) 【Objects类方法】优化 判断是否相等空指针的问题【a.equals(b)【Object类方法】

  • public static boolean equals(Object a, Object b):判断两个对象是否相等。【Objects类中的equals方法】
  • public boolean equals(Object obj):指示其他某个对象是否与此对象“相等”。【Object类中equals方法】
例如
        Person p1 = new Person(null, 1);
        Person p2 = new Person("老王", 1);

        boolean results1 = p1.getName().equals(p2.getName());
        boolean results2 = Objects.equals(p1.getName(), p2.getName());

        System.out.println(results1);
        System.out.println(results2);
     
result1 会报空指针异常
result2 会返回false

源码解释如下:

public static boolean equals(Object a, Object b) {  
    return (a == b) || (a != null && a.equals(b));  
}
如果b为null??? 
解释 :
a==b,a和b都可以为null;
a != null && a.equals(b) 排除了a为null的情况。

 1、equals ():用来检测两个对象是否相等,即两个对象的内容是否相等。
 2、==:用于比较引用和比较基本数据类型时具有不同的功能,具体如下:
(1)基础数据类型:比较的是他们的值是否相等,比如两个int类型的变量,比较的是变量的值是否一样。
(2)引用数据类型:比较的是引用的地址是否相同
补充
父类 Object中的equals 方法
 如果是 String 类型 s1.equals(s2)比较的是内容
 如果是自己创建的Person类型
        Person p1 = new Person("老王", 1);
        Person p2 = new Person("老王", 1);     
 对象 p1.equals(p2) 
     没有重写之前直接比较的是两个对象的地址值
     在Person类中重写之后比较的是对象的内容
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容