Pls tell me in detail, how this thing actually works in java.Unicode is 16 bit character set, but then how int type of 32 bit works? Im confused? How it is possible for pointer to store address of more than 2 bytes?