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

java中String类型是由char组成的,一个char占用两个字节(byte)。"S".getBytes()应该返回两个byte才对,怎么只返回了一个?另外如果是汉字的话,可以返回两个byte。
我的意思是:在java定义中char类型采用unicode编码,占用两个字节,也就是十六位。但是"S".getBytes().length的结果却是 1 ,说明只占用了一个byte,应该是2才对啊,这是什么原因?我估计是:输出的字符串占用的字节数与机器上存储时占用的字节数不同。欢迎大家讨论

一个英文字母占用1个字节。
一个中文会占用2-4个字节都有可能
半角占1个,全角翻倍。

你说的char类型Java规定是占两个字节的空间,但是你打印的是时候是已经编译后的内容。
比如你的char a='112233aab' 输出length 为9
编译后默认按照GBK编码方式输出显示。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-04-16
在java中 字母就是一个byte,无大小写之分的
而汉字 是两个byte
第2个回答  2014-04-16
能贴上具体代码吗?而且不同操作系统对于编码也不尽相同,Srting.getBytes返回的是系统默认的编码格式的数组。有可能是赋值的过程出现问题,也有可能是操作平台的问题。中文操作系统,中文返回2个byte而应用IOS-8895-1的英文系统或者平台默认所有字符都是1byte。
第3个回答  2014-04-16
如果S是半形,就是1byte,如果是全形,就是2byte,汉字是全形,所以是2byte。
第4个回答  2014-04-16
当然是1个字节了追问

java定义中char采用unicode编码,占用两个字节

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网