先来看一个例子:
String str1 = new String("str"); String str2 = new String("str"); String str3 = "str"; String str4 = "str"; String str5 = str3; System.out.println(str1 == str2); System.out.println( str1.equals(str2)); System.out.println(str3 == str4); System.out.println(str3.equals(str4)); System.out.println(str3 == str5); System.out.println(str3.equals(str5));
输出结果为:
false
true
true
true
true
true
至于原因:
“==”比较两个变量本身的值,即两个对象在内存中的地址,属于指针概念。
“equals()”比较字符串中所包含的内容是否相同。