java采用utf-16编码作为内码,也就是说在jvm内部,文本是用16位码元序列表示的,常用的文本就是字符(char)和字符串(string)字面常量的内容。而,utf-16是unicode字符集的一种编码方案。
java字符和字符串存在于以下几个地方:
● java源码文件,*.java,可以是任意字符编码,如gbk,utf-8
● class文件,*.class,采用的是一种改进的utf-8编码(modified utf-8)
● jvm,内存中使用utf-16编码
java编译器需要正确的读取源码,消除编码差异,然后编译成utf-8编码的class文件。比如javac,默认情况下它会取操作系统的编码,可以使用参数-encoding指定源码文件的字符编码。jvm加载class文件,把其中的字符或字符串转成utf-16编码序列。
以上就是java字符类型采用什么编码方式的详细内容。
