所以在内码中,char类型变量使用两个字节进行存储,只不过有一些特殊的字符要使用两个char来表示 在外码中: 使用UTF-8来存储字符,占用1-4个字节(现在是1-6个字节)存储 那么什么是内码?什么是外码? 内码(Internal Encoding):
某种语言运行时,其char和String类型的变量在内存中的编码方式
外码(External Encoding):除了内码就是外码
源文件和class文件中的编码方式都是属于外码 总结:
java中内码(运行时内存)中的char类型变量使用UTF-16的方式进行编码,一个char占用两个字符,但是某些特殊的字符需要两个char来表示
也就是在内码中char都是占用两个字节进行存储的,但是一个字符占用两个字节(一个char)或者四个字节(两个char)进行存储
java中外码中char类型变量使用UTF-16的方式进行编码,一个字符占用1-4个字节(现在是1-6个字节进行存储)
UTF-16编码中: 英文字符占用两个字节进行存储,绝大多数汉字使用两个字节进行存储,个别汉字(一般都是使用不到的生僻字)使用四个字节进行存储
UTF-8编码中: 英文字符占用一个字节进行存储,绝大多数汉字使用三个字节进行存储,个别汉字使用四个字节进行存储


![char类型变量占几个字节的内存存储 [Java] char类型变量占几个字节的内存存储 [Java]](http://www.mshxw.com/aiimages/31/750206.png)
