title: Why can not I add two bytes and get an int and I can add two final bytes get a byte?
body: <pre><code>public class Java{
      public static void main(String[] args){
          final byte x = 1;
          final byte y = 2;
          byte z = x + y;//ok
          System.out.println(z);
  
          byte a = 1;
          byte b = 2;
          byte c = a + b; //Compiler error
          System.out.println(c);
      }
  }
  </code></pre>
  
  <p>If the result of an expression involving anything int-sized or smaller is always an int even if the sum of two bytes fit in a byte.</p>
  
  <p><strong>Why does it happen when we add two final bytes that fit in a byte?</strong> 
  There is no compiler error.</p>