Java中char到底是多少字节
答案:2 悬赏:0 手机版
解决时间 2021-02-02 06:57
- 提问者网友:低吟詩仙的傷
- 2021-02-01 19:23
Java中char到底是多少字节
最佳答案
- 五星知识达人网友:上分大魔王
- 2021-02-01 20:32
java中的char占2个字节
1:“字节”是byte,“位”是bit ;
2: 1 byte = 8 bit ;
char 在java中是2个字节。java采用unicode,2个字节(16位)来表示一个字符。
代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Test {
public static void main(String[] args) {
String str= "中";
char x ='中';
byte[] bytes=null;
byte[] bytes1=null;
try {
bytes = str.getBytes("utf-8");
bytes1 = charToByte(x);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("bytes 大小:"+bytes.length);
System.out.println("bytes1大小:"+bytes1.length);
}
public static byte[] charToByte(char c) {
byte[] b = new byte[2];
b[0] = (byte) ((c & 0xFF00) >> 8);
b[1] = (byte) (c & 0xFF);
return b;
}
}
结果如下:
bytes 大小:3
bytes1大小:2
1:“字节”是byte,“位”是bit ;
2: 1 byte = 8 bit ;
char 在java中是2个字节。java采用unicode,2个字节(16位)来表示一个字符。
代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Test {
public static void main(String[] args) {
String str= "中";
char x ='中';
byte[] bytes=null;
byte[] bytes1=null;
try {
bytes = str.getBytes("utf-8");
bytes1 = charToByte(x);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("bytes 大小:"+bytes.length);
System.out.println("bytes1大小:"+bytes1.length);
}
public static byte[] charToByte(char c) {
byte[] b = new byte[2];
b[0] = (byte) ((c & 0xFF00) >> 8);
b[1] = (byte) (c & 0xFF);
return b;
}
}
结果如下:
bytes 大小:3
bytes1大小:2
全部回答
- 1楼网友:佘樂
- 2021-02-01 21:20
java中无论是汉字还是英文字母都是用unicode编码来表示的,一个unicode码是16位,每字节是8位,所以一个unicode码占两字节。但是英文字母比较特殊,源自于8位(1字节)的ascii吗,于是在unicode码仅使用了低8位(1字节)就可以表示,高8位的话不使用也无所谓。所以
char c='a';
system.out.println(c.getbytes().lenth()),得到的是1(字节)
但汉字就完整地使用了16位(2字节)的unicode,所以
char c='中';
system.out.println(c.getbytes().lenth()),得到的是2(字节)
综上,c='a'在内存中确实只占1字节,但这不意味着string s="abc"在内存中只占3字节。应该这么说,string s="abc"至少在内存中占3字节。这是因为char是基本数据类型,而string确是对象类型。对象是一种很复杂的数据类型,你要看一个对象具体占多少字节,可以把这个对象序列化后存入一个文本文件来看它具体占用了多少字节,当然这也不是精确的,因为序列化需要写入少量系统信息,但大致是对的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯