From Core Java, vol. 1, 9th ed., p. 69:
The character ℤ requires two code units in the UTF-16 encoding. Calling
String sentence =
According to the documentation String is represented internally as utf-16, so charAt() is giving you two code points. If you are interested in seeing the individual code points you can use this code (from this answer):
final int length = sentence.length();
for (int offset = 0; offset < length; ) {
final int codepoint = sentence.codePointAt(offset);
// do something with the codepoint
offset += Character.charCount(codepoint);
}