黑马程序员技术交流社区
标题:
"=="和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