The Java primitive data type that holds a single Unicode character is `char`.
Java’s `char` is a 16-bit unsigned type whose values range from `\u0000` to `\uffff`, or 0 through 65,535. Internally, it represents one UTF-16 code unit, which covers characters in Unicode’s Basic Multilingual Plane.
A common mix-up is treating `char` as identical to a complete Unicode code point. Characters outside the Basic Multilingual Plane, such as many emoji, require two `char` values—a surrogate pair. Java’s `String` class handles sequences of these code units and is used for text longer than one code unit.
Unlike `String`, `char` is a primitive type and uses single quotes, as in `char grade = 'A';`. Double quotes create a `String`, so `'A'` and "A" are different Java values.