==比较的是地址;
equals方法比较的是值;
public class Test02
{
private static final String str = "String";
public static void main(String[] args){
String str1 = "Str"+"ing";
String str2 = "Str";
String str3 = "ing";
System.out.println(str1 == str); //true
System.out.println((str2+str3) == str);//false
System.out.println((str2+str3).equals(str));//true
}
}
该程序中:str字符串的值在字符串常量池中储存;
其中(str2+str3)==str相当于new String(str2+str3)==str,所以返回false;