String、StringBuilder、StringBuffer分析对比
String、StringBuilder、StringBuffer分析对比
1.String-字符串常量
Java中字符串属于对象,提供了String类来创建和操作字符串。但是每次都会创建新的String对象。
从上图可知,"hello"、"world"、"hello word"都会开辟内存空间,总共开辟了三次。对内存空间极大的浪费
细看源码:存在"final"关键字
2.StringBuffer、StringBuilder-字符串变量
- StringBuilder:不是线程安全的,执行速度快,字符串缓冲区安全地用于多个线程
- StringBuffer:线程安全,执行速度慢。(源码存在synchronized、线程锁等),在字符串缓冲区被单个线程使用
3.使用策略
基本原则:
如果要操作少量的数据,用String ;单线程操作大量数据,用StringBuilder ;多线程操作大量数据,用StringBuffer。
浙公网安备 33010602011771号