Heim> Java> JavaBase> Hauptteil

java中char占用多少字节

coldplay.xixi
Freigeben: 2022-01-12 15:41:28
Original
29490 Leute haben es durchsucht

java中char占用的字节:1、java中内码中的char使用UTF16的方式编码,一个char占用两个字节;2、java中外码中char使用UTF8的方式编码,一个字符占用【1~6】个字节。

java中char占用多少字节

在讨论这个问题之前,我们需要先区分unicode和UTF。

  • unicode :统一的字符编号,仅仅提供字符与编号间映射。符号数量在不断增加,已超百万。详细:[https://zh.wikipedia.org/zh-cn/Unicode]

  • UTF :unicode转换格式 (unicode transformation format) 。定义unicode中编号的编码方式。utf8和utf16便是其中两种实现方式。其中utf8为变长表示,长度可能时1~6个字节;utf16为变长表示,长度可能是2或4个字节。详细:UTF8 [https://zh.wikipedia.org/zh-cn/UTF-8] UTF16 [https://zh.wikipedia.org/zh-cn/UTF-16]

接着,要分清内码(internal encoding)和外码(external encoding)。

  • 内码 :某种语言运行时,其char和string在内存中的编码方式。

  • 外码 :除了内码,皆是外码。

要注意的是,源代码编译产生的目标代码文件(可执行文件或class文件)中的编码方式属于外码。

先看一下内码

JVM中内码采用UTF16。早期,UTF16采用固定长度2字节的方式编码,两个字节可以表示65536种符号(其实真正能表示要比这个少),足以表示当时unicode中所有字符。但是随着unicode中字符的增加,2个字节无法表示所有的字符,UTF16采用了2字节或4字节的方式来完成编码。Java为应对这种情况,考虑到向前兼容的要求,Java用一对char来表示那些需要4字节的字符。所以,java中的char是占用两个字节,只不过有些字符需要两个char来表示。

外码

Java的class文件采用UTF8来存储字符,也就是说,class中字符占1~6个字节。

Java序列化时,字符也采用UTF8编码,占1~6个字符。

总结:

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

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

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

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

EOF

相关免费学习推荐:java基础教程

Das obige ist der detaillierte Inhalt vonjava中char占用多少字节. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!