关于前置++与后置++的简单总结

public class Test{
static{
   int x=5;
}
static int x,y;
public static void main(String args[]){
   x--;
   myMethod( );
   System.out.println(x+y+ ++x);
}
public static void myMethod( ){
  y=x++ + ++x;
 }
}

  首先静态代码块是干扰项, 静态变量默认赋值为0,x=0,y =0, x-- ; x =-1,y=0; 然后就要执行方法体了,  y =x++ + ++x;

 理解为y =(x++) +(++x)     x++表示参与完运算之后再++ 即 y =-1+ ++x 此时x =0    ++x表示先自增再参与运算。++x =1, x=1

 y =-1+1 =0 ; 然后执行x+y+ ++x  =1+0+2 =3;

 

package algorithms.com.guan.javajicu; 
public class Inc { 
    public static void main(String[] args) { 
       Inc inc = new Inc(); 
       int i = 0; 
       inc.fermin(i); 
       i= i ++; 
       System.out.println(i);
    
    } 
    void fermin(int i){ 
       i++; 
    } 
}

最终打印的是0 i =i++相当于   temp = i    i =i=1  i=temp 自增被覆盖掉了  

如果改为int j =i++;  j 为0,i为1;

int i = 0;  

i++;

System.out.println(i);  //值为1    打印的是表达式的结果

 

int i = 0;  

++i;

System.out.println(i);  //值为1     打印的是表达式的结果 

 

int i = 0;  

i = i++;

System.out.println(i);  //值为0      打印的是中间变量(JVM中间缓存变量机制)

 

int i = 0;  

i = ++i;

System.out.println(i);  //值为1    打印的是表达式的结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值