Java中判断字符串相等
在Java中,如果我们想要判断两个字符串值是否相等,会不会首先想到用“==”呢?那么用“==”是否可能会出现问题呢?
比如:下面s1和s2是否相等?
String s1="abc";
String s2= new String("abc");
1 public class Demo { 2 3 public static void main(String[] args) { 4 String str1 = "abc"; 5 String str2 = "abc"; 6 String str3 = str1; 7 String str4 = new String("abc"); 8 String str5 = new String("abc"); 9 10 if (str1 == str4) { 11 System.out.println("str1和str4比较引用地址结果为true"); 12 } else { 13 System.out.println("str1和str4比较引用地址结果为false"); 14 } 15 16 // str1=str1 true,相同引用 17 // str1=str2 true,str1和str2都在公共池中,引用相同 18 // str1=str3 true,str3和str1引用相同 19 // str1=str4 false,不同引用地址 20 // str4=str5 false,堆中不同引用地址 21 22 // 比较内容 23 if (str1.equals(str4)) { 24 System.out.println("str1和str4比较内容结果为true"); 25 } else { 26 System.out.println("str1和str4比较内容结果为false"); 27 } 28 } 29 }