类型转换 小白

类型转换

由于java是强类型语言,所以运算中需要进行类型转换

强制类型转换

运算中,不同类型的数据先转化为同一类型,然后进行运算

强制类型的转换为运算由高到低,而如果从低到高则不用转换同类型,会自动进行转换,也就是自动类型转换

自动类型转换

从低到高则不用转换同类型,会自动进行转换

在这里插入图片描述

类型转换由低到高顺序

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

long属于64,而float和double属于32,至于为什么long小于后两者,因为小数大于整数

int占四个字节,是32位

在这里插入图片描述

这是强制转换的字符




在这里插入图片描述

内存溢出

当把int转换成byte时需要在前面加入类型名称,因为byte数值只有0~127,存在内存溢出。

在这里插入图片描述

这就是内存溢出之后转换出的结果

在这里插入图片描述

转换数字也一样同理

内存溢出的类型转换步骤为 强制转换类型名+(强制转换的类型名)+原类型的代表名称 输出


但它不能对布尔值进行转换

不能把对象类型转换为不相干的类型

在把高容量转换成低容量时属于强制转换

因为转换时存在内存溢出,或者是精度的问题

精度问题

在这里插入图片描述

在这里插入图片描述

当把小数转换成int整数时会存在精度问题。



比如

在这里插入图片描述

char转换成int数字会按照字符表转换成数字(按照一定的顺序)

在这里插入图片描述

在这里插入图片描述

这是强制转换后的结果,a的字符转换是97,当它的字符转换成int并且+1时也就是98了,那么同理,如果我把字符98再次转换成char字符,那么顺理成章地我们可以得到b!


所以我们在操作一些比较大的数的时候需要注意溢出问题

下面直接展示示例

在这里插入图片描述
在这里插入图片描述

int的最大数值是20亿,那么当它转换成年份两百亿的时候就会内存溢出。

如果直接从int的转换成long会出现错误,因为它的程序默认是int,转换并不成功,而如果先把其中一个数转换成long,这样的转换是成功的,可以成功输出两百亿(照片中输入 错误)。




好的,小白的今天又结束了,一天不学多,一个课程,学会一样理论,然后进行实践,再记录成为日记,这样或许对以后有所帮助,而且这样做也并没有什么坏处,何乐而不为呢?希望我程序猿之路可以一帆风顺!!!


好的,小白的今天又结束了,一天不学多,一个课程,学会一样理论,然后进行实践,再记录成为日记,这样或许对以后有所帮助,而且这样做也并没有什么坏处,何乐而不为呢?希望我程序猿之路可以一帆风顺!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值