上一节不是提到中文大部分占两个字节码,为啥这里会除以 3

来源:3-2 Java String 可以有多长?

慕九州6385248

2019-11-25

如果字符串中是汉字,那么长度是 65535/3,上一节讲在 class 文件中中文字符大部分占两个字节,这里为什么不是除以 2

写回答

2回答

bennyhuo

2019-11-25

前一节讲的是内存,内存里面存的是Utf16编码,汉字多数占两个字节,也有4个字节的,如果你在控制台打印出来还会多两个字节的字节序标志;字节码里面存的是mutf8编码,汉字一般占3个字节。主要编码不同

1
4
bennyhuo
回复
慕尼黑5552265
汉字的部分,请同学参看视频 8-9 分钟左右的内容。
2020-10-18
共4条回复

bennyhuo

2020-10-18

回复问汉字存储的同学,视频当中有详细讲解,受限于较多的因素,例如字节码存储的限制,汉字以 MUTF-8 编码的字节存储于字节码当中等等

//img.mukewang.com/szimg/5f8c3b0309f0166916760733.jpg

当然,这只是其中的一种情况,详细的分析还是看视频吧。不知道同学对视频当中那部分内容有疑问?

0
9
bennyhuo
回复
慕尼黑5552265
不客气哈,有问题欢迎提问
2020-10-20
共9条回复

大厂资深面试官 带你破解Android高级面试

改变视野和思维 深度与广度兼备的 Android 进阶面试指导课程

1636 学习 · 222 问题

查看课程