1 问题
在判断两个字符串是否相等的时候很自然地使用了“==”但是为什么程序却不能正确运行,或者说得到的结果不是期望的结果?
2 方法
在java中String属于对象类型, 如果使用“==” 两个字符串是不是相等比较的不是String的内容, 而是根据内存图两个String对象的内存地址进行比较。所以在java中要比较两个String是不是相等的要使用String.equals()。
public class Add {
public static void main(String[] args){
String str1 = new String("sjjg");
String str2 = new String("gcsj");
String str3 = new String("gcsj");
System.out.println(str1 == str2);
System.out.println(str2 == str3);
}
}
public class Add {
public static void main(String[] args){
String str1 = new String("sjjg");
String str2 = new String("gcsj");
String str3 = new String("gcsj");
System.out.println(str1.equals(str2));
System.out.println(str2.equals(str3));
}
}
3 结语
Java中,“==”相等判断符用于判断基本数据类型和引用数据类型。当判断基本数据类型时,判断的是数值,当判断引用数据类型时,判断变量是否指向同一引用对象,即内存图中两个变量的内存地址是不是同一个。