黑马程序员技术交流社区

标题: "=="和equals方法有什么区别啊? [打印本页]

作者: __________Just    时间: 2014-10-19 18:31
标题: "=="和equals方法有什么区别啊?
"=="和equals方法有什么区别啊?
作者: cxdzh    时间: 2014-10-19 19:28
如果是基本类型比较,那么只能用==来比较,不能用equals.
例如
int a = 3;
int b = 4;
System.out.println(a == b);//可以比较,编译没问题.
System.out.println(a.equals(c));//错误,编译不能通过,equals方法



对于基本类型的包装类型,比如Boolean、Character、Byte、Shot、Integer、Long、Float、Double等的引用变量,==是比较内存地址的,而equals是比较变量内容的。
作者: 陌上阳光    时间: 2014-10-19 19:50
== 操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符。
equals()方法是用于比较两个独立对象的内容是否相同,就好比去比较两个人的长相是否相同,它比较的两个对象是独立的。
作者: 马个了黑_邓    时间: 2014-10-19 19:53
简单来说,==是比较两个是不是同一地址,而 equal是比较两个内容是否相同
作者: 齐宁宁    时间: 2014-10-19 19:57
==比较的是内存地址,equals比较的是内容
作者: wf111sxwf    时间: 2014-10-19 20:01
==比较的是哈希码值equals就看对象的具体方法了一般是比较对象内容的
作者: 夜班心桥    时间: 2014-10-19 20:10
首先,equals(Object obj)是Object中的方法,在Object里,比较的是两个对象的内存地址。对于基本数据类型的包装类,又重写了这个方法,在这些类中,比较的是两个对象中存储的内容。
而"=="用于基本数据类型值的比较。

作者: hanxing    时间: 2014-10-19 20:23
==能做的事 1.引用类型的比较(是否指向同一对象)2.基本数据类型的比较  例:int a=5; if(a==6){…}
equals:只能比较引用类型,
另:当用equals()方法进行比较时,对类File、String、Date及封装类(Wrapper Class)来说,是比较类型及内容而不考虑引用的是否是同一个对象;原因:在这些类中覆盖了equals()方法。
        Person person1 = new Person("AA", 12);  
        Person person2 = new Person("AA", 12);  
        System.out.println(person1 == person2); // flase   
        System.out.println(person1.equals(person2));// flase   
  
        String str1 = new String("aaa");  
        String str2 = new String("aaa");  
        System.out.println(str1 == str2);// flase   
        System.out.println(str1.equals(str2));// true  

        String str3 = "bbb";  
        String str4 = "bbb";  
        System.out.println(str3 == str4);// true  
        System.out.println(str3.equals(str4));// true
作者: mingtianrsm    时间: 2014-10-20 09:57
equals是==的扩展,都是用来做比较的,不过equals是根据你自己的意愿来做比较,初始的都是比较地址,但只比较地址无法满足我们的要求,这样就可以通过equals来自定义我们需要的比较方法。
作者: chen578157939    时间: 2014-10-20 16:24
==比较的是地址,而equals比较的是对象
作者: HM2014nuli    时间: 2014-10-20 17:34
一个是变量用一个是对象用,个人理解,可以忽视




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