String、StringBuilder、StringBuffer分析对比

String、StringBuilder、StringBuffer分析对比

1.String-字符串常量

Java中字符串属于对象,提供了String类来创建和操作字符串。但是每次都会创建新的String对象

img

从上图可知,"hello"、"world"、"hello word"都会开辟内存空间,总共开辟了三次。对内存空间极大的浪费

细看源码:存在"final"关键字

2.StringBuffer、StringBuilder-字符串变量

  • StringBuilder:不是线程安全的,执行速度快,字符串缓冲区安全地用于多个线程
  • StringBuffer:线程安全,执行速度慢。(源码存在synchronized、线程锁等),在字符串缓冲区被单个线程使用

3.使用策略

基本原则:

如果要操作少量的数据,用String ;单线程操作大量数据,用StringBuilder ;多线程操作大量数据,用StringBuffer。

posted @ 2020-12-22 11:11  机自1899  阅读(75)  评论(0)    收藏  举报