单独使用
放在操作数的前面和后面效果一样
a++ === a=a+1
++a === a = a+1
int a =1;
i=a++; 表示先将a的值赋值给i,然后a自身再加1. 计算结果为:i=1,a=2
i=++a; 表示a先自加1,然后再赋值给i。 计算结果为:i=2,a=2
参与运算
放在操作数的前面,先自增或者自减,再参与运算
放在操作数的后面,先参与运算,再自增或者自减
补充
a++和++a本质上的区别:
前置++不会产生临时对象
后置++在返回时有一个临时对象的创建(a++ 相当与a先创建自身的一个副本,然后a自增1,最后返回副本的值)
在前置++和后置++ 效果相同的时候,最好使用前置++
public class Test1_DataTypeConversion {
public static void main(String[] args) {
int a =10;
int b =10;
int c = 10;
a = b ++; //a:10 b:11
c = --a; // a:9 c:9
b = ++a; //a:10 b:10
a = c --; // c:9 a:8
System.out.println(a); //结果为9
System.out.println(b); // 结果为10
System.out.println(c); // 结果为8
}
}
public class Test1_DataTypeConversion {
public static void main(String[] args) {
int x = 4;
int y =(x++)+(++x)+(x*10);
System.out.println(y); //4+5+50 = 59 4 + 6 + 60 = 70
System.out.println(x); //6
}
}