字符串连接转换为Java中的stringbuilder

时间:2012-05-07 11:15:20

标签: java string

我看到了这个问题和一些相似之处,我认为这不是重复的:

StringBuilder vs String concatenation in toString() in Java

这是交易,我听到一位非常聪明的工作同事今天早上谈到java如何优化8或16个字符串连接(我现在不确定)到字符串构建器。因为这可能是我所说的模糊描述,这是一个6字符串连接的例子:

public String test(){
     return "a" + "b" + "c" + "d" + "e" + "f";
}

所以这实际上翻译成:

public String test(){
     StringBuilder sb = new StringBuilder();
     return sb.append("a").append("b").append("c").append("d").append("e").append("f").toString();
}

我不得不提前离开对话,这是真的吗?如果是,有人可以提供更多详细信息,直到这个优化完成8/16或x?

在我听到之前我并不知道这件事。很高兴知道是否属实。

2 个答案:

答案 0 :(得分:3)

根据要求,这里我的评论是对问题的回答:

您可以在此博客文章中找到有关字符串连接如何在Java中工作的详尽说明:http://znetdevelopment.com/blogs/2009/04/06/java-string-concatenation

答案 1 :(得分:1)

我不知道确切的数字,但通常你不应该担心用+运算符连接字符串,除非连接在某个循环的迭代中发生,因为这是编译器的情况无法优化,您需要明确使用StringBuilder,甚至String.concat

哪种方式最快取决于您的数据是恒定的还是可变的。在您的示例中,字符串将在编译时连接到"abcdef"