Object.Equals(obj, null)与obj==0有什么区别
1个回答
展开全部
equals方法要是比较的对象没有重写该方法,默认下是比较两个对象的内容是否相同,而==实际比较的是两个对象的引用地址值是否为同一个地址
追问
能否说得更清楚一点?
追答
⊙﹏⊙b汗,有点笔误,应该是equals方法要是比较的对象没有重写该方法,默认下是比较两个对象的引用的地址值是否相同(这个和==是一样的,所谓的引用地址值其实就是两个都是引用的同一个对象,因为每个对象的生成都对于着一个地址值),我们一般在编程的时候都习惯使用equals方法来比较两个对象的内容是否相同,这需要我们队equals方法进行重写,具体的规则则有自己定义(当然如果两个对象引用的是同一个对象使用equals方法比较肯定也是为true的)。
例如 API的String类:
String name1 = new String("name");
String name2=new String("name");
name1.equals(name2);返回值为true。String类中对equals方法进行了重写,比较的是内容是否相同。
name1==name2;返回值为false。因为name1和name2是两个不同的对象,因此他们的引用地址值是不一样的。
对于差别,你可以去看API类的源码,看它的equals方法体就会明白的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询