fragments

Jul 02, 2019

🗜原始类型与包装类型在自增运算上的区别

Last updated at: Jul 02, 2019

在编码时,为了实现计数,我们可能会在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方法:

a730d26a9cfe61f08643880a.png

wrapper方法:

e6494403cc92ba273ba6af70.png

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

(29 words)