是啊,我也遇到过,所以从此我都用equals,关注

解决方案 »

  1.   

    JAVA里面当两个对象进行比较时,应该用equals,==只有当两个变量指向同一对象时才返回TRUE……
    这个问题书里面都有讲的,以前也有很多人问过了……至于长度为什么不一样,这要看你的代码才知道了……
      

  2.   

    这是java的机制造成的,
    正如ender所说的,当两个对象进行比较时,应该用equals,==只有当两个变量指向同一对象时才返回TRUE,==只是比较它们的reference的值,长度不一样是因为,你的赋值方式不一样,String  a="abcd";的话它把它放在一个字符串池中,而String  b=getPassword();它会把它放在对象中,产生的机制都不同,难免长度不一样了
      

  3.   

    equals比较对象内容,==比较对象地址
      

  4.   

    yes,
    equals比交对象内容,
    ==比较地址
    答得很好
      

  5.   

    ==比较对象地址?
    如果比较的是Object的话,比较引用,
    如果比较的是基础类型(int,char,...),则直接比较值。