Seb*_*ian 5 java optimization autoboxing boxing jvm
javac或JIT是否优化了不必要的自动装箱?假设我们有一段代码片段.
for(int i=0; i<100000; i++) {
f(i);
}
void f(Integer i) {
System.out.println(i);
}
Run Code Online (Sandbox Code Playgroud)
这段代码如何得到优化?我想f会被内联,但是不必要的拳击int(它没有被修改,永远不会null).我们假设该方法不是从任何其他代码片段调用的.方法签名是否会有任何区别
void f(final Integer i)?
JVM 可以自由地进行任何它喜欢的优化,因此某些 JVM 可能会对此进行优化。
但假设它会这样做是不好的做法,并且对于每个这样做的 JVM 来说,很可能有几个不会这样做。
只需更改方法以接受与内部使用的相同级别的装箱类型。