StringBuffer与StringBuilder

为什么要使用StringBuffer

在实际开发中,我们经常会使用字符串连接的操作,如果用Srting来操作,代码的性能会非常低,因为String的内容不可改变。解决这个问题的方法是使用StringBuffer

当遇到变量和常量相加的时候,建议用StirngBuffer来链接

 

调用StirngBuffer

 

 

StringBuffer原理

1.解决字符串相加时带来的性能问题(常量与变量相加);

2.StringBuffer的内部是实现为字符数组,起始容量大小16,当数值超过容量时,开始扩充:length*2+2;

3.当已知数值大小时,建议使用带初始化容量的StringBuffer方法,来避免动态扩充的次数,提高效率

4.synchronized线程安全的

 

StringBuffer方法

 

什么是StringBuilder

在jdk1.5后添加,个可变的字符数组,与StringBuffer兼容一个API,但不是完全一致。该类被设计用作StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候,单线程时使用StringBuilder,多线程使用StringBuffer。

 

区别

StringBuffer是线程安全,性能低,适合在多线程中使用

StringBuilder是线程不安全,性能高,适合在单线程中使用

 

字符串相加原理分析

1.多个常量相加没有性能问题;

2.变量与常量相加,会产生多个垃圾对象;

 

posted @ 2022-01-15 14:09  星雨boy  阅读(48)  评论(0)    收藏  举报