《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中间缓存变量,反正我是没看明白和这个有什么关系,难道其他语言就不是这样么?
posted @ 2015-01-23 23:46  血之君殇  阅读(205)  评论(0编辑  收藏  举报