StringBulider和String区别

StringBulider是可变字符串,修改字符串变量,使用实现更好
其实Java的字符串连接过程也是利用StringBulider实现的
例如:
String s1 = "a"; String s2="b";
String s = s1+s2;
等效于:s=new StringBulider().appends(s1).appends(s2)...toString()
只要还装得下,就不会反复创建新对象
但是:s+=s1,s+=s2;
却等效于
s= new StringBulider(s).appends(s1);
s= new StringBulider(s).appends(s2);
+=几次就相当于创建了几个StringBulider对象
结论:频繁+= 效率是非常低的!但字符串变量连+,性能和StringBulider等效

String s = "a"+"b";//都是字面量--编译时就能完成,运行直接用现成的
StringBulider sb = new StringBulider().append("a").append("b");
运行时才动态创建对象,动态修改字符数组的内容
总结
如果字符串都是字面量,运行期的效率比StringBulider高
-StringBuffer是线程安全的,同步处理的,性能稍慢(早)
-StringBulider是非线程安全的,并发处理的,性能稍快(晚)
举例子:公交车上StringBuffer售票员让每个先上车乘客找到座位后才继续让下一名乘客上车,虽然安全但是慢;而StringBulier售票员是个讲究效率的角色,让乘客直接都上来自己安排自己,所以速度有所提升,但不保证每个乘客都能找到作为,同时还有可能发生争抢的情况
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值