《Java程序员面试宝典》读书笔记1

今天读书发现一个很有趣的问题

请问以下程序会输出什么? 

  public   class   Test2   { 
    public   static   void   main(String[]   args)   { 
      int   j   =   0; 
      for   (int   i   =   0;   i   <   100;   i++)   { 
        j   =   j++; 
      } 
      System.out.println(j); 
    } 
  } 

 
 
输出的结果是:0 
 
刚看到的时候觉得很不可思议,我选的答案是100,然后看了书上给的解释是什么中间缓存变量,结果看的一塌糊涂,最后发现其实解释起来很简单,完全不用书上写的那一堆乱七八糟的东西,当执行J= j++时,是先将等于0的j赋值给j,然后将后边的j自增,但是下一次执行的时候其实j还是等于0;在别的地方都解释为java中间缓存变量,反正我是没看明白和这个有什么关系,难道其他语言就不是这样么?

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。