目录

基本区别

追加字符串的区别

扩展


基本区别

  • String 是final类,即不能被继承.

JAVA系列:StringBuffer、StringBuilder、String区别_多线程


  • StringBuffer:字符串缓冲区,一个线程安全的存储字符容器。

JAVA系列:StringBuffer、StringBuilder、String区别_线程安全_02

JAVA系列:StringBuffer、StringBuilder、String区别_字符串_03


  • StringBuilder:字符串缓冲区,非线程安全,但效率高。  

JAVA系列:StringBuffer、StringBuilder、String区别_线程安全_04

JAVA系列:StringBuffer、StringBuilder、String区别_多线程_05

JAVA系列:StringBuffer、StringBuilder、String区别_线程安全_06


单线程操作,使用StringBuilder效率高;多线程操作,使用StringBuffer安全。




追加字符串的区别


  • String +=  : 每次新开辟一个地址,每次重新指向该地址 
  • StringBuffer   append :在原有字符串的后面直接追加 (线程安全)
  • StringBuilder  append :在原有字符串的后面直接追加 (非线程安全))