String,StringBuffer,StringBuilder区别(Java,kotlin)

直接上例子,因为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

我的理解是这样的,如有不对望指出

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。