【发布时间】:2017-12-08 08:25:45
【问题描述】:
考虑这样的方法:
@Override
public String toString()
{
final StringBuilder sb = new StringBuilder();
for (final Room room : map)
{
sb.append(room.toString());
sb.append(System.getProperty("line.separator")); // THIS IS IMPORTANT
}
return sb.toString();
}
System.getProperty("line.separator") 可以多次调用。
我应该用public final static String lineSeperator = System.getProperty("line.separator") 缓存这个值吗?
以后只使用lineSeperator?
或者System.getProperty("line.separator") 和使用静态字段一样快?
【问题讨论】:
-
我认为 System.getProperty 应该在每次调用时查找指定的键。我不知道编译器是否对此进行了任何优化。让我们看看人们的建议。
-
您使用的是 Java 7 还是旧版本?
-
@chrylis 我正在使用 6,我正在考虑从 7 开始(到目前为止,我没有看到升级的充分理由......)。这个
getProperty()6 和 7 有什么区别吗? -
是的,7 将此特定问题推广到
System.lineSeparator()。可能不值得升级,但如果您已经在使用它,这是一个更简单的答案。
标签: java caching optimization