char与byte的区别







har 是字符型
byte 是字节型(0 - 255)

在参与算术运算是char类型会自动转为整型;如字符A会转为对应ASCII码65. 
char是用来表示一个字符,而不是一个字,因为一个字要占用两个字节。而存储一个ANSI字符只需一个字节。注意,强调是ANSI字符,而不是Unicode字符。因为Unicode要占用两个字节。
byte类型是最自由的一种。它就占用一个字节,但没有定义这个字节拿来干什么。char定义为一个Unsigned Byte类型。也就是无符号的一个字节。它将一个字节的8位全占用了。可以表示的数据范围是0到255之间。







很多初学者(包括我,已经学了一年多java了)肯会对char和byte这两种数据类型有所疑惑,相互混淆,今天特地查了好多资料,对byte和char两种数据类型进行了总结和比较,先将结果与大家分享:


        byte 是字节数据类型 ,是有符号型的,占1 个字节;大小范围为-128—127 。char 是字符数据类型 ,是无符号型的,占2字节(Unicode码 );大小范围 是065535 ;char是一个16位二进制的Unicode字符,JAVAchar来表示一个字符 。


        下面用实例来比较一下二者的区别:

1、Char是无符号型的,可以表示一个整数,不能表示负数;而byte是有符号型的,可以表示-128—127 的数;如:

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. char c = (char) -3; // char不能识别负数,必须强制转换否则报错,即使强制转换之后,也无法识别  
  2. System.out.println(c);  
  3. byte d1 = 1;  
  4. byte d2 = -1;  
  5. byte d3 = 127; // 如果是byte d3 = 128;会报错  
  6. byte d4 = -128; // 如果是byte d4 = -129;会报错  
  7. System.out.println(d1);  
  8. System.out.println(d2);  
  9. System.out.println(d3);  
  10. System.out.println(d4);  

结果为:

?
1
-1
127
-128


2、char可以表中文字符,byte不可以,如:

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. char e1 = '中'e2 = '国';  
  2. byte f= (byte) '中'; //必须强制转换否则报错  
  3. System.out.println(e1);  
  4. System.out.println(e2);  
  5. System.out.println(f);  

结果为:



45


3、char、byteint对于英文字符,可以相互转化,如:

[html]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. byte g = 'b';   //b对应ASCII是98  
  2. char h = (char) g;  
  3. char i = 85;    //U对应ASCII是85  
  4. int j = 'h';    //h对应ASCII是104  
  5. System.out.println(g);  
  6. System.out.println(h);  
  7. System.out.println(i);  
  8. System.out.println(j);  
结果为:
98
b
U
104
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值