课程
/后端开发
/Java
/Java入门第三季
==不是用来比较内存地址的吗 为什么这里可以用 ==
s.charAt[i]='a'
觉得还是应该用equals()
2015-10-27
源自:Java入门第三季 2-4
正在回答
object类里面的equals方法是比较对象地址的,这里又是比较对象的内容的,有点混啊。
难道说String的equals方法重写Object里面的equals方法了?
和object 类里面的equals 方法感觉有点反了
我觉的应该是只有String的时候才用equals();char是直接用==的
==是用来比较基本类型的
equals方法比较的是引用类型,比较两个是否一样,一般要重写的。
正确,求分!!
不管是equals()方法还是==,它们的实质都是用来做判断用的。
比如这里有两个对象(Person类有name属性):
Person jack = new Person(); Person tom = new Person(); if(jack.equals(tom)) //这是比较两个对象的内存地址 if(jack.name.equals(tom.name)) //这是比较它们的属性值
所以你上面的是在比较它们的属性值,而不是 比较内存地址。
给我‘最佳答案’把,谢谢!!!
smedlut 提问者
举报
Java中你必须懂得常用技能,不容错过的精彩,快来加入吧
6 回答这个==不是比较地址的吗。=
5 回答为什么这里不能用==比较
1 回答equals()什么情况下比较内容,什么情况下比较地址呢?
5 回答加粗斜体部分为什么只能用 == 而不能用equals()?不是说==比较的是引用地址吗? a 字符应该是内容吧
4 回答course2用equals比较为什么出来的是false?