一,类型转换

1.自动类型转换:

容量小的数据类型和容量大的数据类型做运算时,容量小的数据类型会自动转换成容量大的数据类型。

容量从小到大:char,byte,short→int→long→float→double。

char类型和数字类型做运算时,会根据ASCII码表把char类型转化为对应的int类型数字来运算。

char、byte和short这三种类型之间做运算的结果默认自动转化为int类型的数据。

从上面的实例可以看出:将容量小的数据类型赋值给容量大的数据类型,容量小的byte类型'b'被自动转换成容量大的float数据类型了。

但是从上面的实例可以发现:当我们把容量大的数据类型赋值给容量小的数据类型时,就会发现出现了错误,将容量大的数据类型赋值给容量小的数据类型时会出现精度缺失。因为赋值这个操作不是单纯的把数据赋值过去而是将整个数据类型的容量都放到另一个数据类型的容量中去。

当然,我们也可以强行将容量大的数据类型赋值给容量小的数据类型。

(2)强制类型转换

  容量大的数据类型向容量小的数据类型转换,要进行强制类型转换,使用符号:()。例如:

   long b =100;

   int i=( int)b;

  使用强制类型转换需要注意数据精度损失的问题。

 字符串与基本数据类型之间只能进行连接运算,即将两个数据拼接到一起,得到的结果依旧是一个字符串类型的数据。

从上面的实例可以发现:将a强制转换成byte类型后,出现了数据精度损失,使a赋值到b后的值变成了-56。

2.byte类计算的时候如果不进行强制转换,都会编译错误的。

(1).byte b=1。系统强转为1为byte型;

(2).b=b+1,因为'1'默认为int类型,b会被自动转型为int类型,然后与1做运算,结果就变成是int类型的。把容量大的int类型赋给容量小的byte类型就报错了。但是b=b+1改为b+=1就没错了。

(3).b += 1等价于 b = (byte)(b+1);它是一个强制类型转换的,所以编译的时候没事。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值