问答详情
源自:2-4 Java 中的 String 类常用方法 Ⅱ

==不是用来比较内存地址的吗 为什么这里可以用 ==

==不是用来比较内存地址的吗  为什么这里可以用 ==

s.charAt[i]='a'

觉得还是应该用equals()

提问者:smedlut 2015-10-27 16:23

个回答

  • zzcmx2008
    2016-09-05 14:30:52

    object类里面的equals方法是比较对象地址的,这里又是比较对象的内容的,有点混啊。

    难道说String的equals方法重写Object里面的equals方法了?

  • zzcmx2008
    2016-09-05 14:20:49

    和object 类里面的equals 方法感觉有点反了

  • greenhandc
    2015-12-10 22:15:39

    我觉的应该是只有String的时候才用equals();char是直接用==的

  • 某某徐徐
    2015-10-29 23:37:28

    ==是用来比较基本类型的

    equals方法比较的是引用类型,比较两个是否一样,一般要重写的。

  • fly飞翔
    2015-10-28 22:30:37

    正确,求分!!

  • fly飞翔
    2015-10-27 16:38:26

    不管是equals()方法还是==,它们的实质都是用来做判断用的。

    比如这里有两个对象(Person类有name属性):

    Person jack = new Person();
    Person tom = new Person(); 
    if(jack.equals(tom)) //这是比较两个对象的内存地址
    if(jack.name.equals(tom.name)) //这是比较它们的属性值

    所以你上面的是在比较它们的属性值,而不是 比较内存地址。

    给我‘最佳答案’把,谢谢!!!