在某些情况下,装箱可能会导致严重的性能损失,尤其是在循环中。
采用启发估计装箱操作次数。 例如,循环内的转换视为要多得多。
示例:
public void example() {
Integer value = 12;
needBox(value);
for (int i = 0; i < 10; i++) {
// 循环的用法正变得越来越频繁
needPrimitive(value);
}
}
void needPrimitive(int value) {}
void needBox(Integer value) {}
在应用快速修复后:
public void example() {
int value = 12;
needBox(value);
for (int i = 0; i < 10; i++) {
// 循环的用法被视为进行得越来越频繁
needPrimitive(value);
}
}
void needPrimitive(int value) {}
void needBox(Integer value) {}
2018.2 的新功能