Java中字符串“Java程序员”在内存中所占用的字节数

Java语言中,字符串“Java程序员”在内存中所占用的字节数是:(D)
A.10
B.7
C.13
D.14

分析

说白了归根到底就是编码问题,java实际是采用的unicode编码,准确的说是采用utf-16编码的(utf-16可以说是unicode编码的一种实现形式),这在java的说明手册中是可以清晰看到的。

UTF-16

任何字符对应的数字都用两个字节来保存,所以说在这道题中没有指定编码格式,那么采用默认的编码格式(即utf-16),每个字符都占用2个字节。

UTF-8

utf-8采用变长字节的形式来实现unicode编码:
在utf-8中===============>
占2个字节的:带有附加符号的拉丁文、希腊文、西里尔字母、亚美尼亚语、希伯来文、阿拉伯文、叙利亚文及它拿字母则需要二个字节编码

占3个字节的:基本等同于GBK,含21000多个汉字

占4个字节的:中日韩超大字符集里面的汉字,有5万多个

一个utf8数字占1个字节

一个utf8英文字母占1个字节
如果指定了utf-8格式,因为中文汉字3或4个字节不等,多数为3个字节,这里自己可以测试一下,结果是每个字母占用1个字节,每个汉字各占3个字节,总共13个字节。

最后

可以看看下面两篇文章,深入理解一下Unicode、UTF-8、UTF-16之间的区别,还有utf-8编码的占用字节。
Unicode、UTF-8、UTF-16之间的区别
utf-8编码的占用字节

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值