title: What is really happening here? This is a code for swapping two variables
body: <pre><code>a = b-(a-(b = a));  //swapping a and b
  </code></pre>
  
  <p>also, if <code>a=20,b=10</code> why does</p>
  
  <pre><code>System.out.println(b = a);
  </code></pre>
  
  <p>give 20 as result?</p>