今天看了几段视频,讲师对i++与++i的区别并没有讲,下面自己记录一下个人的理解:
1.i++
i先赋值后自增,假设j=i++,则等价的形式为:j=i;i=i+1;
例如:int i = 1; int j = i++; System.out.println("j = " + j + " i=" + i); //j=1 i=2
2.++i
i先自增后赋值,假设j=++i,则等价的形式为:i=i+1;j=i;
例如:int i = 1; int j = ++i; System.out.println("j = " + j + " i=" + i); //j=2 i=2
说到这里顺便提一下i = i + 1, i += 1, i++ 在计算效率上的不同:
这三个表达式的执行效率是依次递增的,原因在于为堆内存中的值去查找栈内存中变量地址的速度不同。
以上属本人拙见,如有不妥,希望大家批评指正。