java 中一个英文字母占用几个字节?

java中String类型是由char组成的,一个char占用两个字节(byte)。"S".getBytes()应该返回两个byte才对,怎么只返回了一个?另外如果是汉字... java中String类型是由char组成的,一个char占用两个字节(byte)。"S".getBytes()应该返回两个byte才对,怎么只返回了一个?另外如果是汉字的话,可以返回两个byte。
我的意思是:在java定义中char类型采用unicode编码,占用两个字节,也就是十六位。但是"S".getBytes().length的结果却是 1 ,说明只占用了一个byte,应该是2才对啊,这是什么原因?我估计是:输出的字符串占用的字节数与机器上存储时占用的字节数不同。欢迎大家讨论
展开
 我来答
极客小七
2017-07-05 · TA获得超过603个赞
知道小有建树答主
回答量:837
采纳率:50%
帮助的人:241万
展开全部
一个英文字母占用1个字节。
一个中文会占用2-4个字节都有可能
半角占1个,全角翻倍。

你说的char类型Java规定是占两个字节的空间,但是你打印的是时候是已经编译后的内容。
比如你的char a='112233aab' 输出length 为9
编译后默认按照GBK编码方式输出显示。
武汉小朱
2014-04-16 · TA获得超过2762个赞
知道小有建树答主
回答量:1212
采纳率:50%
帮助的人:891万
展开全部
在java中 字母就是一个byte,无大小写之分的
而汉字 是两个byte
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
houbowen1230
2014-04-16 · 超过21用户采纳过TA的回答
知道答主
回答量:52
采纳率:0%
帮助的人:40.6万
展开全部
能贴上具体代码吗?而且不同操作系统对于编码也不尽相同,Srting.getBytes返回的是系统默认的编码格式的数组。有可能是赋值的过程出现问题,也有可能是操作平台的问题。中文操作系统,中文返回2个byte而应用IOS-8895-1的英文系统或者平台默认所有字符都是1byte。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qfxr7260
2014-04-16 · TA获得超过157个赞
知道答主
回答量:174
采纳率:100%
帮助的人:44.3万
展开全部
如果S是半形,就是1byte,如果是全形,就是2byte,汉字是全形,所以是2byte。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风舞heart
2014-04-16
知道答主
回答量:11
采纳率:0%
帮助的人:6946
展开全部
当然是1个字节了
追问
java定义中char采用unicode编码,占用两个字节
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式