Один char
, который является 16-разрядным без знака, может представлять любую кодовую точку до 0xFFFF, но не дополнительные символы, которые больше.В Java лучше всего использовать кодировку UTF-16 в char
, поэтому дополнительные символы фактически представлены в виде пар char
, суррогатной пары.В то время как один char
не может представлять такие дополнительные символы, Java справляется с этим.