在编码时,为了实现计数,我们可能会在for循环中对原始类型或者包装类型的值(对于包装类型是实例)进行自增,那么它们两种写法的区别如何?我们可以写出如下测试代码:
private static void primitive() {
int i = 0;
i++;
System.out.println(i);
}
private static void wrapper() {
Integer i = 0;
i++;
System.out.println(i);
}
截图自字节码查看工具jclasslib
primitive方法:

wrapper方法:

可以看到包装类型的自增比原始类型复杂得多,应尽量避免这种情况。
(29 words)