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 是多线程操作字符串缓冲区下操作大量数据,但是多线程效率没有单线程速度快
线程安全:StringBuilder(非线程安全,速度快) StringBuffer (线程安全,速度慢)
如何选择:方法内无线程安全问题,选择StringBuilder 有线程安全问题,使用StringBuffer
如果使用:
当连接几个String 时候,使用String.concat
当连接较多字符串 依据线程安全需求,选择StringBuffer或StringBuilder
当使用较多,且无法确认具体连接字符串次数与数目时候,选择StringBuilder 因为相对而言,单线程StringBuilder速度快
原因解读:
1. String 是最终变量 每修改String 会重新使用新的内存,原有内存会依据JVM清除,消耗内存大
2. Stringbuilder 是单线程操作字符串缓冲区,每次修改 内存地址不会增加消耗量,即为在原有基础上,增加栈长度
3. Stringbuffer 是多线程操作字符串缓冲区下操作大量数据,但是多线程效率没有单线程速度快
相关文章推荐
- String 、 StringBuffer、StringBuilder有什么区别
- String、StringBuffer、StringBuilder到底有什么区别?
- Java String,StringBuilder,StringBuffer区别和实际应用总结
- String,StringBuffer,StringBuilder个人认为较重要的区别
- 总结String,StringBuilder,StringBuffer的区别以及注意事项
- Java中String、StringBuffer、StringBuilder、StringTokenizer有什么区别
- 黑马程序员----【javaSE基础】个人总结--String 、 StringBuffer 和 StringBuilder
- Java String、StringBuffer、StringBuilder有什么区别
- String,StringBuffer,StringBuilder区别是什么?
- String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的?
- String,StringBuffer,StringBuilder之间的区别,以及使用中该注意什么(转)
- String,StringBuffer,StringBuilder个人认为较重要的区别
- String,StringBuffer,StringBuilder 三者之间的区别是什么?
- String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的?
- String, StringBuffer, StringBuilder 三者之间的区别是什么?
- String 、StringBuffer 、StringBuilder区别是什么?
- java基础(二)------ String,StringBuffer,StringBuilder有什么区别?
- 理解java String,深入解析StringBuffer和StringBuilder的区别
- Android 字符串拼接总结 String,StringBuffer与StringBuilder的区别??
- String, StringBuffer, StringBuilder 三者之间的区别是什么?