Java:在Java中String是以Unicode保存的吗?

但是Unicode有UTF8、UTF16、GBK等多种实现方式,说String是以Unicode保存的具体是以哪种实现方式呢?还是说是以纯Unicode保存的?那岂不是会... 但是Unicode有UTF8、UTF16、GBK等多种实现方式,说String是以Unicode保存的具体是以哪种实现方式呢?还是说是以纯Unicode保存的?那岂不是会占用很多空间? 展开
 我来答
antonio306
2015-04-12 · TA获得超过318个赞
知道小有建树答主
回答量:262
采纳率:0%
帮助的人:239万
展开全部
字符串在java内存中总是按unicode编码存储的。比如"中文",正常情况下(即没有错误的时候)存储为"4e2d 6587",如果charset为"gbk",则被编码为"d6d0 cec4",然后返回字节"d6 d0 ce c4".如果charset为"utf8"则最后是"e4 b8 ad e6 96 87".如果是"iso8859-1",则由于无法编码,最后返回 "3f 3f"(两个问号)。

java虚拟机采用UCS2(通用字符集)标准保存字符,所有的字符在内存中都是2个字节,这样虚拟机处理字符串的截取、长度和判断都非常容易。其他语言如PHP、Python也是,在运行时采用固定长度存储字符。
相对应编译后的class,java规定采用UTF-8保存,因为大部分是英文字符,只有一个字节,可以大量节省存储空间。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式