java中stringbuilder和stringbuffer的区别
时间: 2024-01-14 19:02:49 浏览: 90
Java StringBuilder和StringBuffer源码分析
StringBuilder和StringBuffer都是Java中可变的字符串类,它们的主要区别在于线程安全和执行效率方面。
StringBuffer的所有公开方法都是synchronized修饰的,因此它是线程安全的,但是这也导致了它的执行效率相对较低。而StringBuilder的方法没有被synchronized修饰,因此它的执行效率要高于StringBuffer,但是它不是线程安全的。
因此,如果在单线程环境下进行字符串操作,建议使用StringBuilder,因为它的执行效率更高;如果在多线程环境下进行字符串操作,建议使用StringBuffer,因为它是线程安全的。
示例代码如下:
```java
// 使用StringBuilder进行字符串操作
StringBuilder sb = new StringBuilder("Hello");
sb.append(" world");
System.out.println(sb.toString()); // 输出:Hello world
// 使用StringBuffer进行字符串操作
StringBuffer sbf = new StringBuffer("Hello");
sbf.append(" world");
System.out.println(sbf.toString()); // 输出:Hello world
```
阅读全文