1、java中字符串的比较:==
我们经常习惯性的写上if(str1==str2),这种写法在java中可能会带来问题
example1:
String a="abc";String b="abc"
那么a==b将返回true。因为在java中字符串的值是不可改变的,相同的字符串在内存中只会存
一份,所以a和b指向的是同一个对象;
example2:
String a=new String("abc"); String b=new String("abc");
那么a==b将返回false,此时a和b指向不同的对象。
比如,从外部接口接收来的字符串对象和已有字符串比较就比较容易有这个问题
example:
String a=new String("abc");
String b=new String("abc");
a.equals(b);
将返回true。
简单一句话,==比较的是两个字符串的地址是否为相等(同一个地址),equals()方法比较的是两个字符串对象的内容是否相同(当然,若两个字符串引用同一个地址,使用equals()比较也返回true)。