title: Java + Operator
body: <p>I am unable to grasp the idea of either addition operator or <code>short</code> data-type.</p>
  
  <p>It's said that;</p>
  
  <pre><code>short a = 1;
  short b = 2;
  short c = a + b;
  </code></pre>
  
  <p>which will not compile because addition operator always cast <code>short</code>, <code>chart</code>, <code>byte</code> data-types to <code>int</code> and I understand this. But this;</p>
  
  <pre><code>short c = 1 + 2;
  </code></pre>
  
  <p>works totally fine. So, if addition operator auto converts <code>short</code> to <code>int</code> and then apply the result (where result ofcourse will be an <code>int</code>), why this works fine?</p>
  
  <p><strong>Edit:</strong> This question is not duplicate of <a href="https://stackoverflow.com/questions/477750/primitive-type-short-casting-in-java#477769">Primitive type &#39;short&#39; - casting in Java</a> since I understand the conversions process. Also, the question talks about conversions of data types where as my question relates to <code>int</code> literals.</p>