现在是少女时代,以后是少女时代,永远是少女时代!
sone :少时的假粉丝

java字符串比较是否都可直接使用==?



java字符串比较,两个字符串相不相等,直接用==来判断可以吗?或者判断两个字符串不相等,直接用!=?

答:不能


说明:


Java中两个对象进行比较,如果使用==符号,那么比较的是这两个对象的“引用”(类似C语言中指针的概念)。

字符串比较,通常情况下比较的是字符串的值而非引用,不同的“引用”是可以对应相同值的,如果这时候用==比较,得出的结论是不相等,但是实际上它们的值是相等的。

同理,不相等也是一样,如果是用!=来判断,判断的是字符串的引用,如果两个字符串的值是相同的,它们的引用也不相同,进到判断的时候,就会判断为不相等,其实字符串的值是相等的。


所以,Java中比较字符串的值,一般使用equals()进行比较


代码示例:

String a = new String("abc");
String b = new String("abc");
a == b; //false
a.equals(b); // true

if(a!=b){

//a和b字符串的值是abc,它们的引用也不同,此时进到这个分支,如果是想判断字符的值,那么就出问题了

}

if(!(a).equals(b)){

//这个时候才是根据字符串的值,来判断这两个字符串的值,是否相同

}


琼ICP备16001221号-1