==运算符用于表示两个变量的值是否相等
equals()用于比较两个对象中的内容是否一样
代码如下
class test
{
public static void main(String []args){
String str1 = new String("aaa");
String str2 = new String("aaa");
String str3 = str1;
if(str1 ==str2){
System.out.println("true");
}
else{
System.out.println("false");
}
}
}
测试结果如下
将if中的比较元素换成str3结果如下
因为str1与str3指向的是堆中的同一个对象,也就是他们的值是完全一样的。而str1与str2就好像双胞胎兄弟,长相一样但不是同一个人所以不能划等号。但是要是通过equals比较长相就是相同的。
通过equals比较代码如下:
class test
{
public static void main(String []args){
String str1 = new String("aaa");
String str2 = new String("aaa");
String str3 = str1;
if(str1.equals(str2)){
System.out.println("true");
}
else{
System.out.println("false");
}
}
}
比较结果:
在改变if中比较元素str2为str3时结果为
str1与str2相等吻合之前观点,而str1与str3本来内容就相同,返回true也就不足为奇啦!
(随手记录,如有错误望大神指点)