JVM是否优化了不必要的自动装箱?

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)

Tim*_*m B 2

JVM 可以自由地进行任何它喜欢的优化,因此某些 JVM 可能会对此进行优化。

但假设它会这样做是不好的做法,并且对于每个这样做的 JVM 来说,很可能有几个不会这样做。

只需更改方法以接受与内部使用的相同级别的装箱类型。