java什么是自动类型转换_java自动类型转换

java中,在进行数值运算或赋值时,可能会进行自动类型转换。

首先自动类型转换都需要满足这个条件:

转换后的数据类型的表示范围比转换前的类型大。

解释:

如下图:

0818b9ca8b590ca3270a3433284dd417.png

自动类型转换只能顺着箭头的方向转,如果要反着转的话,就需要强制类型转换了。

那么在什么情况下会触发自动类型转换呢?

1.在两个数字相加时或者为一个变量赋值时。

相加时分两种情况:

a. int左侧的数值进行计算,会先都转成int,然后进行计算,所以运算结果都是int。

这是java为了防止溢出做的一个处理。

如: byte a,b = 1,c = 1;

char d = 1;

int result;

a = b+c;//编译报错

a = b + d;//编译报错

a = 1 +2; //不会编译报错. 因为1和2是常量,已经识别他们的结果不会溢出,所以不会被自动转成int.

a =  1 +127; //编译报错,因为结果128已经超出了

result = b + c;

result = b + d;

b.int以及int右侧在进行计算的时候,会转成计算的两个数中的在上图里更靠右的类型。

2.赋值的时候

整数:会根据整数大小来判断。比如如果小于128,就算成byte,如果是赋值给更大的类型的话,就会自动向上转型。

小数:默认是double,不会再发生向上转型

如果是123l 则认为是long ,如果是123.1f则认为是float.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值