内码外码占用字节数不同,要区分对待:

1.java中内码(运行内存)中的char使用UTF16的方式编码,一个char占用两个字节,但是某些字符需要两个char来表示。所以,一个字符会占用2个或4个字节。

2.java中外码中char使用UTF8的方式编码,一个字符占用1~6个字节。

3.UTF16编码中,英文字符占两个字节;绝大多数汉字(尤其是常用汉字)占用两个字节,个别汉字(在后期加入unicode编码的汉字,一般是极少用到的生僻字)占用四个字节。

4.UTF8编码中,英文字符占用一个字节;绝大多数汉字占用三个字节,个别汉字占用四个字节。

统计字符长度需注意,如emoji表情算2个长度的字符,可使用codePointCount方法统计

一个字符占几个字节(char定义字符最大多少)(1)