Java基础-类型转换

类型转换

优先级

-->byte,short,char->int->long->float->double

看到这里就有很多小伙伴感到纳闷了,明明long占8个字节,

float只占4个字节,为什么float的优先级要比long高呢?

这是因为浮点数类型的优先级一定大于整数类型

强制转换

有高容量转低容量,是需要强制转换的,如下图:
在这里插入图片描述

我们声明了一个数据类型为double的变量b,当我们用int类型去接收b时,程序是报错的,如图,程序给了我们三种选择,
第一种是强制转换:

double b=10.0;
int a =(int) b;

第二种是将变量a转换为double类型

double b=10.0;
double a =b;

第三种是将b转换为int类型

int b=10; //注意:int是整数类型,所以没有小数点
int a =b;

从图中我们可以看出,要让double类型的值用int类型接收是需要强制转换的

自动转换

自动转换就是将低容量数据类型转换为高容量数据类型,这时不需要强制转换,程序会帮我们自动转换,因为高容量可以完全接纳低容量的值

转换时内存溢出

在这里插入图片描述如图所示:定义一个int类型的变量a并给它赋值为128,将它强制转换为byte类型时,输出的值是-128,这说明在强制转换时内存溢出了!因为byte的最大值为127
在这里插入图片描述

注意点

  • 不能布尔值转换,因为它的单位是位
  • 不能把对象类型转换为不相干类型,如A是一个人,你不能把转换成一头猪,但是你可以把它变成男人或者女人!
  • 在高容量转低容量时需要强制转换
  • 在转换时可能内存溢出或者精度问题
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值