String、StringBuffer与StringBuilder之间区别

1、String:字符串常量。StringBuffer:多线程使用的安全字符串变量。StringBuilder:单线程的非安全字符串变量。

2、运行速度:StringBuilder > StringBuffer > String

3、在jvm中,对String对象操作的时候,都会创建一个相同的新的String对象去执行操作,然后这个旧的String对象就会被当成垃圾被GC回收掉。因此,对String对象操作的是,旧的String对象是不会变的,因此为字符串常量。

而其他的两个对象,都是在其本身上进行操作,因此访问的速度会比较快。

4、StringBuffer执行效率比StringBuilder慢的原因是为了多线程安全,StringBuffer执行的方法几乎都加上了synchronized同步关键字,使得执行效率相对比单线程的StringBuilder对象来说要慢。

 

 

你可能感兴趣的:(知识总结)