String str1="Hello";
String str2="Hello";
String str3=new String("Hello");
String str4=new String("Hello");
System.out.println("str1=str2?"+(str1==str2));
System.out.println("str2==str3?"+(str2==str3));
System.out.println("str3==str4?"+(str3==str4));
System.out.println("str2.equals(str3)?"+(str2.equals(str3)));
System.out.println("str3.equals(str4)?"+(str3.equals(str4)));
equals();是判断str2和str3的内存地址的相同性,但从图来看他们的内存地址完全不一样,所以我们就去看看string类它的源代码:
在源代码中我们发现String类的源代码是重写啦equals()方法的。所以得到的结果是true