![]() |
1
25
你的论点很好,这是Java语言更具表现力的领域之一。
见 String concatenation 在JLS中。像这样的表情
相当于
但所有的中间目标都是不必要的(所以效率不是动机)。规范指出,实现可以使用
|
![]() |
2
19
这个结构的问题是它通常不能表达意图。 它表示字符串与另一个值的连接,但连接通常不是此行的目标。 在您演示的特定情况下,连接实际上是目标,所以这段代码 做 表达意图。
在更常见的情况下(
|
![]() |
3
4
我更喜欢用
但是,我建议这个版本将消除所有潜在的歧义:
这样就不可能有人考虑c1和c2在连接之前是否会被加在一起。 |
![]() |
4
2
在我看来,
我唯一会稍微担心的是性能——而且非常肯定的是,这通常并不重要(即使我没有测量或查看二进制)。这种concat也很有可能被优化掉,因为它应该很容易被检测到(不过这只是一个猜测)。 |
![]() |
5
2
我认为在
所以从技术角度来说没有区别也没有问题。 形成一个可读性的观点-这是一个个人偏好的问题或在团队中商定的编码风格。 |
![]() |
6
2
怎么样
如果你经常这样做,你可以创建一个类“strings”,其中包括:
你的台词是
又短又好。 编辑 一个更好的名字可能是:
|
![]() |
7
1
除非你的应用程序需要每一盎司的性能,否则请编写更快速、更易于阅读的代码。+是执行语法的速度较慢,但每次使用它时似乎都更容易阅读。 |
![]() |
8
1
这个
|
![]() |
9
0
最好的方法是编译/反编译代码,我使用jad http://en.wikipedia.org/wiki/JAD_(JAva_Decompiler )为此,您将看到您的表达式已转换为 字符串s=(new stringbuilder()).append(“”).append(ci).append(c2).tostring(); 正如您所看到的,javac实际上包含了append(“”)调用,但是它的成本可以忽略不计,注意要附加到内部的stringbuilder缓冲区,您可以检查stringbuilder的源代码 |