Question
Why is char 2 bytes?
Answer
ASCII Code covers 255 characters so, to store a character only 1 byte is needed. Java uses Unicode covering 65536 characters - so 2 bytes needed.
In Java, a character is encoded in UTF-16 which uses 2 bytes, which requires a minimum of 16-bits of storage for each character.