栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

char类型变量占几个字节的内存存储 [Java]

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

char类型变量占几个字节的内存存储 [Java]

java中的char类型变量占用几个字节的内存进行存储 在内码中: 通过UTF-16编码进行存储字符,而UTF-16中使用2个或者4个字节来表示一个字符,这个时候如果是2个字节可以存储的字符我们就使用一个char表示,如果是需要4个字节表示的字符,在UTF-16编码中我们通过两个char类型变量来表示

所以在内码中,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编码中: 英文字符占用一个字节进行存储,绝大多数汉字使用三个字节进行存储,个别汉字使用四个字节进行存储

问题遗留:UTF-16中的个别生僻汉字使用四个字节来表示,这个时候为什么是两个char来表示的?一个汉字不应该是对应了一个char类型的变量?
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/750206.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号