使用哪一个 - 串联中的String或StringBuffer

时间:2014-05-21 08:07:25

标签: java string object stringbuffer

我在项目中看到了java代码,它从各种参数构造一个文件名.java代码是这样的

String file = null;
String fileDirSeperator = System.getProperty("file.separator");
String pwd = System.getProperty("user.dir");
file = pwd + fileDirSeperator + "properties" + fileDirSeperator + folder_name + file_name;

我想知道我是否应该StringBuffer代替String。我知道将任何内容附加到String会创建新对象,所以我想我应该StringBuffer

我可以知道你的建议吗?

此外,

 file = pwd + fileDirSeperator + "properties" + fileDirSeperator + folder_name + file_name;

在上面的文件名构造中,是否会创建6个对象(每个变量一个)?

3 个答案:

答案 0 :(得分:6)

这是无关紧要的。除非你在一个循环中执行此操作,否则运行数千次,性能并不重要。 String连接语法将是最直接的。

如果性能是连接问题,请使用StringBuilder

答案 1 :(得分:0)

使用StringBuilder代替您提到的选项。

当然,对于这么小的用例,它并不重要

答案 2 :(得分:0)

对数以万计的操作进行基准测试后,您也可以使用字符串连接。从Java 6开始,性能得到了极大的提升。

http://www.javacodegeeks.com/2013/03/java-stringbuilder-myth-debunked.html

http://www.code-thrill.com/2012/08/stringbuilder-optimizations-demystified.html