String类型的比较研究
比较是否相等的运算符: ==
1、对于基本的数据类型的变量,==是直接判断值是否相等的。
2、对于引用数据类型的变量值,==是判断其地址值是否相同,也就是指向的是否是一个对象。
结论:
如果只是希望判断字符串的内容是否相等不建议使用==,因为==只会判断他们的地址值是否相同。
String类型的判断建议使用提供的API:equals方法判断。
public boolean equals (Object anObject):一个字符串与另一个字符串比较只要字符串的内容相同则返回true
public class StringDemo01 {
public static void main(String[] args) {
//1、对于基本的数据类型的变量,==是直接判断值是否相等的。
int a = 14;
int b = 14;
System.out.println(a == b);
//2、对于引用数据类型的变量值,==是判断其地址值是否相同,也就是指向的是否是一个对象。
String s1 = new String("赵丽颖");//堆内存
String s2 = new String("赵丽颖");//堆内存(每次new出来的东西地址都不一样)
String s3 = "赵丽颖";//常量池
System.out.println(s1 == s2);//false
System.out.println(s2 == s3);//false
// Boolean flag = s1.equals(s2);//比较内容
// System.out.println(flag);
System.out.println(s1.equals(s2));//比较内容
System.out.println(s2.equals(s3));//比较内容
}
}