1
5
查看生成的字节码:
您可以清楚地看到,这个还有两个说明:
这些指令看起来非常多余,很容易优化。我敢打赌JIT编译器会在需要时处理它们。 |
2
4
差别正好是2个JVM字节码,它转换成1条额外的机器指令,JIT可能会优化掉这些指令(如果您不使用变量做任何其他事情的话)。 |
3
2
不。 |
4
1
|
5
1
虽然生成的字节码可能不同,但我认为这应该是jit编译器更容易优化的事情之一。根据它的实际功能,甚至对象创建也可以完全优化。 |
6
0
两者之间唯一的区别是只要
|
7
0
第一个例子的效率略低。在第一个示例中,对象引用将一直保持到函数或封闭块结束。在第二个示例中,一旦调用完成,对象引用将可用于垃圾收集。当然,它实际上可能不是垃圾收集的。 我还没有检查生成的字节码。Java保存引用的方式可能有所不同,但无论哪种情况,我都怀疑它微不足道。 |