简要说明
在C++中,比较两个string字符串相等,通常使用的是 ==,这也是因为string类中,对 == 运算符对应的方法做了重载。
同样的 == ,在Java中,用法可是完全不一样的;今天就说说Java字符串String判断是否相等的equals和 == 的区别。
equals()比较的是对象的内容,并且区分内容的大小写;但是如果使用 == 比较两个对象时,比较的是两个对象的内存地址,所以不相等。
即使它们内容完全相等,但是不同对象的内存地址也是不相同的。所以,一定不要使用 == 运算符检测两个字符串是否相等!
代码验证
下面用一段示例代码验证下,其中使用+或者concat()方法创建的字符串,都会构造出新的String对象
1 | public class StringEqual { |
上述代码执行后,看下验证结果:
1 | str1: string |
equals能够真实判断字符串是否相等,而 == 则问题多多,谨记该用法。