您的位置:首页 > 产品设计 > UI/UE

String , StringBuffer , StringBuilder有什么区别 深度解析 个人总结

2018-03-03 19:25 951 查看
性能方面: StringBuilder>StringBuffer>String(for)循环里面字符串拼接
线程安全:StringBuilder(非线程安全,速度快) StringBuffer (线程安全,速度慢)
如何选择:方法内无线程安全问题,选择StringBuilder 有线程安全问题,使用StringBuffer
 
如果使用:
当连接几个String 时候,使用String.concat
当连接较多字符串  依据线程安全需求,选择StringBuffer或StringBuilder
当使用较多,且无法确认具体连接字符串次数与数目时候,选择StringBuilder 因为相对而言,单线程StringBuilder速度快
 
原因解读:
1.      String 是最终变量  每修改String 会重新使用新的内存,原有内存会依据JVM清除,消耗内存大
2.      Stringbuilder 是单线程操作字符串缓冲区,每次修改 内存地址不会增加消耗量,即为在原有基础上,增加栈长度
3.      Stringbuffer 是多线程操作字符串缓冲区下操作大量数据,但是多线程效率没有单线程速度快
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  线程 String StringBuffer