码迷,mamicode.com
首页 > 其他好文 > 详细

2)==和equals

时间:2014-11-17 17:39:06      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:style   io   color   ar   sp   strong   div   on   bs   

==和equals
 
1.如果比较对象是值变量:只用==
 
2.如果比较对象是引用型变量:
     ==:比较两个引用是不是指向同一个对象实例。
     equals:
            首先Object类中equals的实现是直接调用了==操作。
            一个自定义类继承自Object且没有重写equals方法,那么其equals操作也是与Object类一样,仅仅是直接调用==操作。
            如果一个类重写过equals方法(或者继承自一个重写过equals方法的类),那么效果与==操作不同
    
     如果是你自己定义的一个类,比较自定义类用equals和==是一样的,都是比较句柄地址, 因为自定义的类是继承于object,而object中的equals就是用==来实现的。
 
     API里的类大部分都重写了equals方法。例如String类
          String类型(String本身就是一个类):
               ==:比较两个str是否是指向同一个对象实例。
               equals:比较两个str中的内容是否相同
 
     检查两个引用型变量是否属于同一个Class:instanceof
          System.out.println((obj1 instanceof Student) && (obj2 instanceof Student)) 

2)==和equals

标签:style   io   color   ar   sp   strong   div   on   bs   

原文地址:http://www.cnblogs.com/weilf/p/4103941.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!