在JAVA中,String类是个特例对比
示例1.
String s1 = “ABCD”;
String s2 = “ABCD”;
System.out.println(s1.equals(s2)); //true
System.out.println(s1 == s2); //true
以上很好理解
示例2
String s1 = “ABCD”;
String s2 = “ABCD”;
s1 = s1 + “E”;
s2 = s2 + “E”;
System.out.println(s1.equals(s2)); //true
System.out.println(s1 == s2); //false
示例2说明了在对比初始赋值的变量时有效(此时系统内部分配的是同一内存地址),但经过运算后,系统对两个变量赋值了不同的引用地址,此时就不能使用,这点JAVA与C#是不一样的。
所以平常在JAVA的开发过程中,字符串对比不能使用==,而建议使用equals。