请你说说String,StringBuffer,StringBuilder区别?

1、String底层是将字符串存放在一个被final修饰的byte数组中;而StringBuffer和StringBuilder是存放在一个没有被final修饰且初始化容量为16的byte数组中。

2、StringBuffer和StringBuilder底层的byte数组可以通过拷贝数组来扩容,而String不行。 因此,String是定长的字符串类型,一经创建的String对象是一直不变的。StringBuffer和StringBuilder是可以通过追加字符串,改变长度的字符串类型。

3、String是不可变的所以是线程安全的;StringBuffer中的所有公开方法都有synchronized关键字修饰,所以也是线程安全的;StringBuilder没有被synchronized修饰,所以是非线程安全的,但它比StringBuffer执行效率高。

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务