JAVA 中的 StringBuilder 和 StringBuffer 适用的场景是什么?
2016-10-06 16:36
543 查看
1.使用String类的场景:在字符串不经常变化的场景中可以使用String类,例如常量的声明、少量的变量运算。
2.使用StringBuffer类的场景:在频繁进行字符串运算(如拼接、替换、删除等),并且运行在多线程环境中,则可以考虑使用StringBuffer,例如XML解析、HTTP参数解析和封装。
3.使用StringBuilder类的场景:在频繁进行字符串运算(如拼接、替换、和删除等),并且运行在单线程的环境中,则可以考虑使用StringBuilder,如SQL语句的拼装、JSON封装等。
StringBuffer是线程安全的,有加锁开销,效率略低。StringBuilder非线程安全,不用加锁,效率更高。一般字符串相加不会有多线程操作,所以推荐使用StringBuilder。StringBuilder是jdk1.5之后引入的,之前只能使用StringBuffer。另外,事实上我们在java里写的字符串相加的操作被编译后都是通过new一个StringBuffer或StringBuilder对象来操作的,所以不会产生大量的String对象
2.使用StringBuffer类的场景:在频繁进行字符串运算(如拼接、替换、删除等),并且运行在多线程环境中,则可以考虑使用StringBuffer,例如XML解析、HTTP参数解析和封装。
3.使用StringBuilder类的场景:在频繁进行字符串运算(如拼接、替换、和删除等),并且运行在单线程的环境中,则可以考虑使用StringBuilder,如SQL语句的拼装、JSON封装等。
StringBuffer是线程安全的,有加锁开销,效率略低。StringBuilder非线程安全,不用加锁,效率更高。一般字符串相加不会有多线程操作,所以推荐使用StringBuilder。StringBuilder是jdk1.5之后引入的,之前只能使用StringBuffer。另外,事实上我们在java里写的字符串相加的操作被编译后都是通过new一个StringBuffer或StringBuilder对象来操作的,所以不会产生大量的String对象
相关文章推荐
- JAVA 中的 StringBuilder 和 StringBuffer 的区别,适用的场景是什么?
- Java中 StringBuilder 和 StringBuffer 的适用场景
- Java基础之String、StringBuffer与StringBuilder的区别及应用场景
- Java String、StringBuffer、StringBuilder有什么区别
- Java中String、StringBuffer、StringBuilder、StringTokenizer有什么区别
- Java基础之String,StringBuffer与StringBuilder的区别及应用场景
- java基础(二)------ String,StringBuffer,StringBuilder有什么区别?
- Java基础之String,StringBuffer与StringBuilder的区别及应用场景
- Java中String,StringBuilder和StringBuffer的区别
- C#两个知识点的补充 string与stringbuilder的区别以及深层机制 C#中接口与抽象类的比较以及各自适用的场景
- day7 常用类字符串处理类--String、StringBuffer、StringBuilder 自动装箱、拆箱 Object类 Java 的异常处理机制
- java语言中String,StringBuffer,StringBuilder的区别
- JAVA中String与StringBuffer 、StringBuilder的区别
- 【java面试题】StringBuilder与StringBuffer和String 的区别
- Java String,StringBuilder,StringBuffer
- JAVA中String与StringBuffer 、StringBuilder的区别
- JAVA中String与StringBuffer 、StringBuilder的区别
- Java中静态变量的适用场景
- String, StringBuffer, StringBuilder 三者之间的区别是什么?
- JAVA中String与StringBuffer,StringBuilder应用的区别