|
1
6
编译器将内联此特定示例:
Java 9将使用
invokedynamic with makeConcatWithConstants
提高效率。按照
但是如果
和
在其他情况下,例如
|
|
2
3
您的前提是使用“+”串联运算符构建字符串非常低效,这是不正确的。首先,字符串连接本身不是一个便宜的操作,因为它意味着创建一个包含所有连接字符串的新字符串,因此需要复制字符内容。但这总是适用的,不管 怎样 你做到了。
当你使用
实际上,从java5到java8的所有常用编译器都使用
从Java9开始,编译器生成一个
因为这只适用于一个串联表达式,当使用多个语句甚至循环执行字符串构造时,使用
这是时候记住旧规则,只有在性能出现实际问题时才尝试优化性能。并始终使用公正的测量工具验证尝试的优化是否真的提高了性能。有很多关于性能优化技巧的误解,无论是错误的还是过时的。 除非您有重复的部分,并且希望减小类文件的大小 |
|
|
3
2
在一般情况下,字符串与
字符串串联不在循环中-高效!!!!
这使得性能很好,因为JVM使用
这是正常的,因为JVM在内部将此代码更改为以下代码:
附笔。
循环中的字符串串联-效率不高!!!!
这会使性能变差,因为JVM不能用一个
但是,JVM仍然能够优化每个循环迭代中的所有连接;如下所示:
如您所见,在循环中使用字符串串联有一些缺点。 |
|
|
Sandeep Ranjan · jQuery字符串串联“+”错误 8 年前 |
|
|
David · 根据条件在列表中串联字符串和整数 8 年前 |
|
|
Pl3tx235j · 如何在表达式语言3.0中串联字符串[重复] 8 年前 |
|
|
Ori Marko · JMeter-Groovy脚本变量串联 8 年前 |
|
|
Ian Stewart · OpenEdge连接的性能 8 年前 |
|
|
terny · 从oracle apex连接两列 8 年前 |
|
|
Jake · SQL:如何将函数连接到字符串 8 年前 |