Java中的String、StringBuilder和StringBuffer的区别?

Java中的String、StringBuilder和StringBuffer的区别?

1、String

String底层是private final char value[],final修饰了,所以不可变。

 

2、StringBuilder

StringBuilder和StringBuffer都继承了AbstractStringBuilder,而AbstractStringBuilder中存放数据的char[] value,所以是可变的。

 

3、StringBuffer

StringBuilder和StringBuffer都继承了AbstractStringBuilder,而AbstractStringBuilder中存放数据的char[] value,所以是可变的。

另外StringBuffer中的很多方法是加了synchronized关键字,所以是同步的。

 

应用场景分析

  1. String适合操作少量数据
  2. StringBuilder适合单线程操作字符串缓冲区下操作大量数据
  3. StringBuffer适合多线程操作字符串缓冲区下操作大量数据

 

posted @ 2019-01-07 16:29  林木声  阅读(216)  评论(0编辑  收藏  举报