我在项目中看到了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个对象(每个变量一个)?
答案 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