String、String Buffer、StringBuilder区别与比较
生活随笔
收集整理的這篇文章主要介紹了
String、String Buffer、StringBuilder区别与比较
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
?
| 類型 | 常量/變量 | 適用場景 | 性能 |
| String | 字符串常量 | 操作少量的數據 | ? |
| String Buffer | 字符串變量(線程安全) | 多線程操作大量數據 | 低 |
| String Builder | 字符串變量(非線程安全) | 單線程操作大量數據 ? | 高 |
?
這里解釋下為什么builder是單線程的,而Buffer是多線程的.
因為多線程往往需要的是高IO,高IO需要的是Buffer,
而單線程的往往是CPU密集的,所以單線程的名字叫builder.
應用場景總結如下:
| 數據類型 | 適用場景 | 起名原因 |
| StringBuilder | CPU密集 | - |
| StringBuffer | IO密集 | 操作Buffer頻繁 |
?
?
Reference:
[1]String,StringBuffer與StringBuilder的區別|線程安全與線程不安全
[2]面試題:String、StringBuffer、StringBuilder的區別與聯系
[3]JAVA面試題----------String、StringBuilder和StringBuffer
[4]為什么StringBuffer是線程安全的
?
總結
以上是生活随笔為你收集整理的String、String Buffer、StringBuilder区别与比较的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手机文件夹的emulated什么意思
- 下一篇: 地图服务 纬度、经度对应坐标轴x,y