char与byte的差别
非常多刚開始学习的人(包含我,已经学了一年多java了)肯会对char和byte这两种数据类型有所疑惑,相互混淆,今天特地查了好多资料,对byte和char两种数据类型进行了总结和比較,先将结果与大家分享:
byte 是字节数据类型 ,是有符号型的,占1 个字节;大小范围为-128—127 。char 是字符数据类型 ,是无符号型的,占2字节(Unicode码 );大小范围 是0—65535 ;char是一个16位二进制的Unicode字符,JAVA用char来表示一个字符 。
以下用实例来比較一下二者的差别:
1、Char是无符号型的,能够表示一个整数,不能表示负数;而byte是有符号型的,能够表示-128—127 的数;如:
char 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
-128
2、char能够表中文字符,byte不能够,如:
char e1 = '中', e2 = '国';
byte f= (byte) '中'; //必须强制转换否则报错
System.out.println(e1);
System.out.println(e2);
System.out.println(f);
结果为:
中
国
45
3、char、byte、int对于英文字符,能够相互转化,如:
byte 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
转载于:https://www.cnblogs.com/zfyouxi/p/4032621.html
char与byte的差别相关推荐
- char和byte的区别
cannot convert parameter 1 from 'unsigned char [1024]' to 'const char *' byte 是字节数据类型 ,是有符号型的,可以表示-1 ...
- C# 中的char 和 byte
在C#中,char代表一个Unicode的字符,占用的内存不是一个byte.而byte还是一个字节. 那么在char和byte之间copy操作时,可能结果不是我们想要的. 示例: static voi ...
- java的char 转byte
java中的char类型即可以存储英文字母也可以存储汉字,汉字在java中使用Unicode编码占两个字节.char转byte数组的方法如下: public static byte[] charToB ...
- char与byte的区别
http://blog.csdn.net/luoweifu/article/details/7770588 byte 是字节数据类型 ,是有符号型的,占1 个字节:大小范围为-128-127 .cha ...
- Java最佳实践– Char到Byte和Byte到Char的转换
在使用Java编程语言时,我们将继续讨论与建议的实践有关的系列文章,我们将讨论String性能调优. 特别是,我们将重点介绍使用默认编码时如何有效地处理字符到字节和字节到字符的转换. 本文总结了两种提 ...
- 基本数据类型char、byte、short、integer、long、double、float范围
文章目录 基本数据类型范围 存在i+1 基本数据类型范围 char:占2个字节,采用Unicode编码[Unicode编码的前128字节编码与ASCII兼容],字符的存储范围在\u0000~\uFFF ...
- list排序成员函数对string对象与char*对象排序的差别
对list容器中的对象排序,不能使用sort()算法,只能采用其自身的排序函数sort().因为,算法sort()只支持随机存取的容器的排序,如vector等. 对基本数据对象list排序:成员函数s ...
- 利用RedisTemplate报错redis Invalid UTF-32 character 0x6a607661 (above 0x0010ffff) at char #8, byte #35)
1)可能是redis中存在缓存就会产生相应的冲突,导致请求报错. 解决方法:清除redis中的缓存就可以了 2)在放入里面去加入时间的单位,可能解决问题.
- JDK9为何要将String的底层实现由char[]改成了byte[]?
欢迎关注方志朋的博客,回复"666"获面试宝典 如果你不是 Java8 的钉子户,你应该早就发现了:String 类的源码已经由 char[] 优化为了 byte[] 来存储字符串 ...
- java short to byte_java笔记 Java中byte数组与int,long,short,char间的转换
package com.util; public class ByteUtil { /** * 转换short为byte * * @param b * @param s * 需要转换的short * ...
最新文章
- shell 去除 字符串中的双引号
- python导入csv文件-python如何导入csv
- glance-50(秒解秒懂)
- html页面取js里面的值,如何在javascript中获取HTML元素的样式值?
- hdu1556(Color the ball )
- 题目1179:阶乘-------------阶乘不用long long int 就不能AC
- 前端学习(1041):todolist--html界面
- PHP多种形式发送邮件
- WIN2008下找不到proxy的处理方法
- 打车平台Lyft获Magna 2亿美元投资,携手打造自动驾驶汽车
- mac m1 nvm 安装node版本失败
- uandroidtool使用教程_apktool反编译详细使用教程_图文教程
- 7 netsnmp安装window_Linuxfx 10.2,一款来自巴西的Window操作系统,“山寨”出了高度...
- Centos 8 Linux 安装 微信(WeChat)
- pe系统安装win10系统
- Fiddler抓包工具详解
- 捷联惯导系统学习2.3(方向余弦阵微分方程)
- 瑞星杀毒软件卸载方法
- 麻瓜编程python爬虫微专业_网易微专业Python Web开发工程师课程下载
- 连续潜在变量---主成分分析