java - 使用 .toString()、String.valueOf() 和 + ""将字符串缓冲区转换为字符串有什么区别

标签 java string stringbuilder

对于以下三种情况,StringBuffer 转换为 String 的主要区别是什么:

案例 1:使用 toString()

StringBuffer sb = new StringBuffer("Welcome");
String st = sb.toString();

案例 2:使用 + ""

StringBuffer sb = new StringBuffer("Welcome");
String st = sb + "";

案例 3:使用 String.valueOf()

StringBuffer sb = new StringBuffer("Welcome");
String st = String.valueOf(sb);

哪个是在性能方面使用的最佳实践?

最佳答案

这个

StringBuffer sb = new StringBuffer("Welcome");
String st = sb + "";

或多或少会导致

StringBuffer sb = new StringBuffer("Welcome");
StringBuilder builder = new StringBuilder();
builder.append((sb == null) ? "null" : sb.toString());
builder.append("");
String st = builder.toString();

关于java - 使用 .toString()、String.valueOf() 和 + ""将字符串缓冲区转换为字符串有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25175001/

相关文章:

php - 如何使用 php 链接字符串中的 url?

html - 如何将 StringBuilder 的内容显示为 HTML?

java - 如何在java中的stringBuilder对象的两侧添加单引号

java - 使用 Jackson 反序列化复杂的 Json

java - 在Java中将十六进制字符串转换为ASCII

java - 尝试将开放处理代码转换为pj.5s

java - 如何在 Java 中检测多项式

java - 具有数百万条记录的循环 - java.lang.OutOfMemoryError : Java heap space

Java/SQL -executeUpdate() 挂起并导致 OutOfMemoryException

java - JXLS 2.0 条件格式论坛未按行更新