“==”和“equals()”方法比较字符串时,其比较方法不同。
1)“==”比较两个变量本身的值,即两个对象在内存中的首地址。
2)“equals()”比较字符串中所包含的内容是否相同。
如果按照你所给的话String a="aaa",String b="aaa"的话equals和“==”的效果是一样的为ture:
(原因)equals为ture无可置疑,而a和b仅仅只是串常量,常量的存储地址是一样的!
你的情况1)可能是你对两个中某一个初始化,类似:String a=new String("aaa");String b=new String("aaa"), 导致首地址不同而flase
2)就是你定义的不是object中的,因为object中存在equals语句,像StringBuffer中就不存在!
|