Stringbuilder和StringBuffer的区别

线程安全方面:具体看源码:

StringBuffer:

Stringbuilder和StringBuffer的区别

里面的方法都用synchronized修饰

Stringbuilder和StringBuffer的区别

StringBuilder:

Stringbuilder和StringBuffer的区别

Stringbuilder和StringBuffer的区别

效率问题:看Demo

Stringbuilder和StringBuffer的区别

结果:是StringBuffer更快

原因:虽然在拼接方面StringBuffer比StringBuilder慢,但是转String时却快

看toString源码:

StringBuffer中toString的源码:

Stringbuilder和StringBuffer的区别

StringBuilder中toString的源码:

Stringbuilder和StringBuffer的区别

比较可见:StringBuffer中toString加了缓存,导致StringBuffer的toString()执行速度将近快3.5倍

在效率方面的结论是效率值不是绝对的,但是虽然toString有不一样,但是这只是一个临界点,大部分情况下还是StringBuilder效率更高。