Java的类型转换

一、Java的类型提升

类型的自动提升(隐式类型转换)

file
黑色表示无精度丢失自动转换
红色表示有精度丢失自动转换

表达式的数据类型自动提升
  • 所有的byte、short、char 都会自动提升为int类型
  • 如果第一个操作是long,则结果为long
  • 如果第一个操作数是floag,则结果为float
  • 如果第一个操作数是double,则结果为double
容量小的会自动转换为容量大的类型

整数类型可以直接赋值给byte、short、char等类型常量,不需要强制类型转换,要求不得超过其类型表示范围

强制类型转换

int b = (int) 1000L;
由于long类型是8个字节,int 为 4个字节,从int转化为long可能会损失精度,所以需要强制类型转化

二、类型转换中的问题

强制类型转换乱码问题

如果强制类型转换之后的数值超过了目标类型,这时运行虽然不会报错,但是输出结果无意义,因为超出了指定内存范围,因此会指向一块没有意义的内存地址,因此乱码

运算时类型提升问题

public void test02() {
	int a = 100;
	long b = 200;
	int c = (int) (a+b);
	System.out.println(c);
}

因为b为long类型,a+b得出的结果将自动提升为long,因此需要将a+b进行强制类型转换

三、心灵鸡汤

过去的习惯,决定今天的你,所以,过去的懒惰,决定你今天的一败涂地。

file


感谢阅读,水平有限,只是记录自己学习生涯中的漫漫IT路,如有错漏,还请不吝赐教

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值