Java中字符char与字节byte的区别
简述
byte是字节数据类型,是有符号型的,占1个字节,大小范围是-128~127;而char是字符类型的,在java中,用2个字节的Unicode码来表示一个字符,是无符号类型的,自然的,范围是0~65535。
区别与转换
byte是有符号类型的,占8位;而char是无符号类型的,占16位。
1
2
3
4
5
6
7
8
9
10char c = (char) -3; // char不能识别负数,必须强制转换否则报错,即使强制转换之后,也无法识别
System.out.println(c);
byte d1 = 1;
byte d2 = -1;
byte d3 = 127; // 如果是byte d3 = 128;会报错
byte d4 = -128; // 如果是byte d4 = -129;会报错
System.out.println(d1);
System.out.println(d2);
System.out.println(d3);
System.out.println(d4);结果:
?
1
-1
127
-128char可以表示中文字符,而byte不可以
1
2
3
4
5char e1 = '中', e2 = '国';
byte f= (byte) '中'; //必须强制转换否则报错
System.out.println(e1);
System.out.println(e2);
System.out.println(f);结果:
中
国
45
当char和byte都是英文字符时,可以相互转换。(对应的int类型也可以与之互相转换)
1
2
3
4
5
6
7
8byte g = 'b'; //b对应ASCII是98
char h = (char) g;
char i = 85; //U对应ASCII是85
int j = 'h'; //h对应ASCII是104
System.out.println(g);
System.out.println(h);
System.out.println(i);
System.out.println(j);结果:
98
b
U
104