任何人都可以告诉我Java中String的'+'运算符的确切实现.我知道这是concat运算符连接两个字符串,即使那时因为String是一个类,那么这个运算符的实现在哪里以及它是如何工作的?
该实现是特定于编译器的,虽然它通常最终创建一个StringBuffer或StringBuilder在幕后,并附加到它.请注意,它对效率有特殊处理,因此x + y + z可以编译为类似的东西
new StringBuilder().append(x).append(y).append(z).toString();
Run Code Online (Sandbox Code Playgroud)
...还要执行常量字符串表达式的编译时连接.
你可以看到操作说明在JLS节15.18.1,但并没有指定任何特定的实现.
要查看特定编译器的功能,只需编译一些您感兴趣的代码,然后使用它javap -c来查看它生成的字节码.