integer in Java

Type | Storage size | Value range
--- | --- | --- 
byte | 1 byte | -2<sup>7</sup> to 2<sup>7</sup>-1
short | 2 bytes | -2<sup>15</sup> to 2<sup>15</sup>-1
int | 4 bytes | -2<sup>31</sup> to 2<sup>31</sup>-1
long | 8 bytes | -2<sup>63</sup> to 2<sup>63</sup>-1

Java does not support unsigned data types. The byte, short, int, and long are all signed data types. For a signed data type, half of the range of values stores positive number and half for negative numbers, as one bit is used to store the sign of the value.
Char is Unicode character range from '\u0000' (or 0) to '\uffff' (or 2<sup>16</sup>-1 inclusive)
```
class Main {
    public static void main(String[] args) {
        byte b = -1; System.out.println(b); 
        char c = 1; System.out.println((int)c);
        short s = -1; System.out.println(s);
        int i = -1; System.out.println(i);
        long l = -1; System.out.println(l);
    }
}
```
Outputs:
```
-1
1
-1
-1
-1
```