A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lsunshine 中级黑马   /  2015-7-17 21:43  /  1421 人查看  /  22 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

"=="和equals方法的区别
        ==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同;
要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符
如果一个变量指向的数据是对象类型的,那么,这时候涉及了两块内存,对象本身占用一块内存(堆),变量也占用一块内存,比如Object obj = new Object();变量obj是一个内存,new Object()是另一个内存,此时,变量obj所对应的内存中的数值是否相等,这时候就需要用==操作符进行比较.
   equals方法是用于比较两个独立对象的内容是否相同,就好比去比较两个人的长相是否相同,它比较的两个对象是独立的.
   比如:String a = new String("foo");
        String b = new String("foo");
        这两条new语句创建了两个对象,然后用 a, b 这两个变量分别指向了其中一个对象,这是两个不同的对象,它们的首地址是不同的,即a 和b 中存储的数值是不相同的,所以,表达式a==b将返回false.而这两个对象中的内容是相同的,所以,表达式a.eauals(b)将返回true.
如果一个类中没有自己定义equals方法,那么它将继承Object类的equals方法,Object类的equals方法的实现代码如下:
boolean equals(Object o){
return this==o}这说明,如果一个类没有自己定义equals方法(从Object类继承的)就是使用==操作符,也是在比较两个变量指向的对象是否是同一对象,这时候使用equals和使用==会得到同样的结果,如果比较的是两个独立的对象则总返回false.如果你编写的类希望能够比较方尺类创建的两个实例对象的内容是否相同
那么就要重写equals方法,由你自己写代码来决定在情况即可认为两个对象的内容是相同的

22 个回复

倒序浏览
真的可以直接复制粘贴啊
回复 使用道具 举报
这个。。。。。
回复 使用道具 举报
我还以为是什么东东,就看完这个就能进就业班了?我读书少,你别骗我。典型的标题党啊
回复 使用道具 举报
赞,太棒了,加油,小妹妹
回复 使用道具 举报
这个真详细,,,,
回复 使用道具 举报
......................
回复 使用道具 举报
有种被骗的感觉。。。
回复 使用道具 举报
怎么说呢,,
回复 使用道具 举报
学习了。。。
回复 使用道具 举报
Nemo 中级黑马 2015-7-18 18:43:58
11#
。。。。这个有用是有用,但是别这么标题好吗
回复 使用道具 举报
T-l-H、小生 发表于 2015-7-18 00:00
我还以为是什么东东,就看完这个就能进就业班了?我读书少,你别骗我。典型的标题党啊 ...

没有基础肯定进不了就业班阿
回复 使用道具 举报
这,有这么简单嘛
回复 使用道具 举报
zhand 中级黑马 2015-7-18 20:45:15
14#
学习了…………
回复 使用道具 举报
我调用String的equalss
回复 使用道具 举报
标题党骗的一手好回复。。。
回复 使用道具 举报
是挺重要的一个知识点,得教了
回复 使用道具 举报
既然被骗进来的就发一个吧
回复 使用道具 举报
还以为什么呢。。。早就知道了。。标题党。。
回复 使用道具 举报
进来了就顶一下吧。。。。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马