黑马程序员技术交流社区

标题: == 与 equals() [打印本页]

作者: jialp1024    时间: 2016-5-29 20:28
标题: == 与 equals()
== 与 equals()  他们之间具体的区别在哪里?
作者: haojingwei310    时间: 2016-5-29 21:07
* ==是一个比较运算符号,既可以比较基本数据类型,也可以比较引用数据类型,基本数据类型比较的是值,引用数据类型比较的是地址值
* equals方法是一个方法,只能比较引用数据类型,所有的对象都会继承Object类中的方法
,如果没有重写Object类中的equals方法,equals方法和==号比较引用数据类型无区别
重写后的equals方法比较的是对象中的属性
作者: longyun    时间: 2016-5-29 21:53
1.==可以用于"值类型"也可以用于"引用数据类型":
*                 用于"值类型":判断左右两边的"值"是否相等:
*                         int a = 10;
*                         int b = 20;
*                         if(a == b){
*                         }
*                 用于"引用数据类型",判断左右两边的"地址"是否相等
*                         String s1 ="abc";
*                         String s2 = "abc";
*                         System.out.println(s1 == s2);
* 2.equals()只能用于"引用数据类型":
*                 1).我们经常需要判断"两个对象"中的"所有属性值"是否完全相同。使用equals经常是判断两个对象中的属性值是否完全相同
*                         ArrayList<User> userList = new ArrayList<>();

*                         User user = new User("李四",20);
*                         for(int i= 0;i < userList.size(); i++){
*                                 User u = userList.get(i);
*                                 if(u.getName().equals(user.getName()) &&//不使用equals(),也可以一个属性一个属    性的单独判断
*                                                 u.getAge() == user.getAge()){
*                                         //重复的数据
*                                 }
*                                 //使用equals()
*                                 if(u.equals(user)){
*                                         //重复的数据
*                                 }
*                         }




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2