String字符串之StringBuffer与StringBuilder的区别

StringBuffer与Stringbuilder的区别

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

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

字符串操作时

1.多个常量相加没有性能问题,在编译器侦破那个优化,

2.如果是常量+变量就会产生垃圾对象,

StringBuffer就是来解决常量+变量的问题的。

StringBuffer的实现是采用字符数组,字符数组默认长度为16,当超过这个长度的时候,采用动态数组扩充*2+2

所以当我们预知添加数组的长度时,我们要使用带容器的构造方法,来避免动态扩充,来提高效率,线程安全的,会影响性能,

String表示一个字符串,该类不可被继承(最终类),不可变

String的两种赋值方式

String s1="呵呵"; //一个对象

String s2=new String("呵呵");//用new来创建对象,有2个对象

猜你喜欢

转载自www.cnblogs.com/Tony98/p/9645681.html