String类中,==用来判断两个字符串的地址是否相同,而equals用来判断两个字符串的内容是否完全相同。
public class Test{
public static void main(String []args){
//我们先定义三个字符串类型的变量
String str1 = "123";
String str2 = "123";
String str3 = new String("123");
//判断
System.out.println(str1 == str2);//此时输出为true,因为str1和str2指向同一个地址
System.out.println(str1 == str3);//此时输出为false,详见 https://blog.csdn.net/S_Tian/article/details/102820944
System.out.println(str1.equals(str3));//这里equals是判断字符串内容是否完全相同,很明显完全相同,所以输出ture
}
}
下面,我们来看一下equals的底层代码。
分析: