Java 最佳实践

3

需要找到更多优化Java编码的方法。

这里是一个非常简单的示例代码

int index1 = line.indexOf(" ", word1.length() + 1);
if (!line.isEmpty() && index1 != -1) {
line = line.substring(word1.length(), index1).trim().toLowerCase();
}

或者

if(!line.isEmpty() && line.indexOf(" ",word1.length()+1) != -1){
line = line.substring(word1.length(), index1).trim().toLowerCase();
}

我注意到大多数时候你需要在更好的代码可读性和更优化的代码之间做出选择。哪一种方法更好呢?


对于那些没有Java环境或不想使用编译器的人们,我建议还要写一个输入行的例子和期望的结果。 - darioo
@Ali - 你什么时候会像你说的那样接受那些答案呢?? - Stephen C
Stephen,我正在做这件事。说真的,我不熟悉这个论坛,我正在努力适应所有规则。 - Ali
不知怎么的,我只想给出一点提示: 请分享这篇文章:http://docs.blackberry.com/en/developers/deliverables/5580/BP_Writing_efficient_code_446999_11.jsp - gumuruh
http://www.javabench.in/2016/11/while-developing-programming-in-java.html - Raúl
3个回答

17

在性能提升微不足道或无法完全证明的情况下,应该以

易读性

为目标。

+1:使其易读,但不要过于难以优化,如果您发现未来有改进的空间。 - darioo
但在这个例子中,第二种方法更好还是声明一个新变量像index1更好呢?假设代码在一个大循环内部,并且变量每次都会被初始化。谢谢。 - Ali
1
@Ali,可读性在很多方面都是主观的。我认为第一种方法更易读,虽然你可能可以进一步改进它,正如Solovyev所指出的那样,例如使用分词器。 - Johan Sjöberg
-1 - 对“性能”和“可读性”含糊其辞的讨论。没有建设性。 - kittylyst

1
在那种情况下,最好的解决方案是使用StringTokenizer,这样你就不会遇到阅读上的问题。

0

不确定您想要实现什么- word1是行中的第一个单词吗?

如果是这样,我认为以下方式更易读:

String parts[] = line.split(" +");
if (parts.length > 1) {
    line = parts[1];
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接