📅  最后修改于: 2023-12-03 14:59:00.541000             🧑  作者: Mango
在Java中,++i和i++都是用来自增1的操作符,但它们的区别在于它们的作用时间不同。
++i是一个前缀自增1的操作符,它会在表达式求值之前将变量i的值自增1。举个例子:
int i = 0;
int j = ++i;
System.out.println("i is " + i); // i is 1
System.out.println("j is " + j); // j is 1
在这个例子中,变量i被自增1之后,变成了1。那么当赋值操作执行时,j的值就是1。可以看到,++i操作符会先自增1,然后再使用变量的值。
i++是一个后缀自增1的操作符,它会在表达式求值之后才将变量i的值自增1。举个例子:
int i = 0;
int j = i++;
System.out.println("i is " + i); // i is 1
System.out.println("j is " + j); // j is 0
在这个例子中,变量i的值被赋给j之后,i才被自增1。所以i的值变成了1,但j的值还是0。可以看到,i++操作符会先使用变量的值,然后再自增1。
在实际开发中,两个操作符的使用没有绝对的优劣之分,可以根据具体情况选择。但在for循环中,使用++i会比i++更高效。因为++i会直接修改变量的值,而i++需要先将变量的值保存到一个临时变量中。举个例子:
for (int i = 0; i < array.length; ++i) {
// do something
}
如果使用i++,那么循环中的每次操作都要多一次复制操作,会稍微降低一点性能。