==:地址是否相同
equals:内容是否相同
定义四个字符串,内容都是java
package java_proj;
public class StringDemo4 {
public static void main(String[] args) {
//==和equals方法的区别
//定义四个字符串,内容都是java
String str1 = "java";
String str2 = "java";
String str3 = new String("java");
String str4 = new String("java");
System.out.println("str1和str2的内容相同?"+(str1.equals(str2))); //也可写:str2.equals(str1)
System.out.println("str1和str3的内容相同?"+(str1.equals(str3)));
System.out.println("str3和str4的内容相同?"+(str3.equals(str4)));
System.out.println("str1和str2的地址相同?"+(str1 == str2));
System.out.println("str1和str3的地址相同?"+(str1 == str3));
System.out.println("str3和str4的地址相同?"+(str3 == str4));
}
}
输出:
str1和str2的内容相同?true
str1和str3的内容相同?true
str3和str4的内容相同?true
str1和str2的地址相同?true
str1和str3的地址相同?false
str3和str4的地址相同?false
下图可以解释上方关于地址是否相同的结果:

本文探讨了Java中字符串str1、str2、str3和str4的比较,通过equals()方法比较内容,==运算符对比地址,揭示了它们之间的区别,重点在于浅拷贝与深拷贝的体现。
2396

被折叠的 条评论
为什么被折叠?



