character in Java

The char data type is a single 16-bit Unicode character.
Languages like C/C++ uses only ASCII characters, and to represent all ASCII characters 8-bits is enough. But Java uses the Unicode system not the ASCII code system and to represent the Unicode system 8 bits is not enough, so Java uses 2 bytes for characters. Unicode defines a fully international character set that can represent most of the world’s written languages.
Type | Storage size | Value range
--- | --- | --- 
byte | 1 byte | -2<sup>7</sup> to 2<sup>7</sup>-1
char | 2 bytes | 0 to 2<sup>16</sup>-1