numeric promotion

Numeric promotion is the conversion of a smaller numeric type to a larger numeric type, so that integer and floating-point operations may take place. In numerical promotion, byte, char, and short values are converted to int values. The int values are also converted to long values, if necessary. The long and float values are converted to double values, as required. 
```
public class Main {
    public static void main(String[] args) {
        short s = 0;
        s = s + 10;  // not compile, cause 10 in int
    }
}
```