直接上例子,因为equals和hashcode方法已经被重写,所以equals和hashcode肯定是相等的,所以不用验证。下边直接上例子。
java
String a = "test";
String b = "te" + "st";
String c = "test";
String d = new String("test");
StringBuffer e = new StringBuffer("test");
StringBuffer g = new StringBuffer("test");
StringBuilder f = new StringBuilder("test");
System.out.println(a == b); //true
System.out.println(a == c); //true
System.out.println(a == d); //false
System.out.println(b == c); //true
System.out.println(b == d); //false
System.out.println(c == d); //false
System.out.println(e.equals(g)); //false
System.out.println(g.equals(f)); //false
kotlin( kotlin == 为equals === 为比较地址)
var a = "test"
var b = "te" + "st"
var c = "test"
var e = StringBuffer("test").toString()
var g = StringBuilder("test").toString()
var f = StringBuilder("test").toString()
println(a === b) //true
println(a === c) //true
println(b === c) //true
println(e === g) //false
println(e === f) //false
println(g === f) //false
image.png
我的理解是这样的,如有不对望指出