字母在Java中占多少位

此文转载于网络,请慎重参考


字母:charJava中应该是2个字节
字母:byte在Java中应该是1个字节
char x = '
编'; //2个字节16位

但是
String str = "编";
byte[] bytes = str.getBytes(); //占用3个byte,24位

 

1字节bytebit

2 1 byte = 8 bit

char Java中是2个字节。java采用unicode2个字节(16位)来表示一个字符。

  例子代码如下:


1.  public class Test {  

2.    

3.    

4.      public static void main(String[] args) {  

5.          String str= "";  

6.          char x ='';  

7.          byte[] bytes=null;  

8.          byte[] bytes1=null;  

9.          try {  

10.             bytes = str.getBytes("utf-8");  

11.             //bytes1 = charToByte(x);  

12.         } catch (UnsupportedEncodingException e) {  

13.             // TODO Auto-generated catch block  

14.             e.printStackTrace();  

15.         }  

16.         System.out.println("bytes 大小:"+bytes.length);  

17.         System.out.println("bytes1大小:"+bytes1.length);  

18.     }  

19.     /*public static byte[] charToByte(char c) {   

20.         byte[] b = new byte[2];   

21.         b[0] = (byte) ((c & 0xFF00) >> 8);   

22.         b[1] = (byte) (c & 0xFF);   

23.         return b;   

24.     }  */

25. }  



运行结果:

bytes 大小:3
//bytes1
大小:2

java是用unicode来表示字符,""这个中文字符的unicode就是2个字节。

 String.getBytes(encoding)方法是获取指定编码的byte数组表示,

通常gbk/gb23122个字节,utf-83个字节

如果不指定encoding则取系统默认的encoding

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值