`
隐形的翅膀
  • 浏览: 480968 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java中的对象比较

阅读更多
JAVA中比较两个对象,其实就是判断两个对象的引用变量是否相等

1. ==运算符就是比较引用变量所指向的内存地址是否相同

2. equals(Object o)方法,也是按内存地址比较,但用户可以覆盖Object类的equals方法

 User u1=new User("Tom");
 User u2=new User("Tom");
 User u3=u1;
 u3.setName("Jack");
 u1==u3//true
 u1.equals(u3)//true
 u1==u2//false;
 u1.equals(u2)//false


3. Java中的一些类覆盖了equals方法,以事项按对象值进行比较,这些类包括,String,Date,Byte,Integer,Short,Character,Long,Float,Double,Boolean
String s1=new String("hello");
String s2=new String("hello");
s1==s2//false,按地址进行比较
s1.equals(s2)//true, 已重写,按值进行比较


4. 重写equals的一个例子
public boolean equals(Object o)
{
   //如果和自身比较,返回TRUE
   if(this==o) return true;
   //如果不是这个类的实例,返回FALSE
   if(!o instanceof User) return false;
   
   final User u=(User)o
   if(this.getName().equals(u.getName())
      return true;
   else
      return false;
}
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics