类型转换
由于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,这样的转换是成功的,可以成功输出两百亿(照片中输入 错误)。
好的,小白的今天又结束了,一天不学多,一个课程,学会一样理论,然后进行实践,再记录成为日记,这样或许对以后有所帮助,而且这样做也并没有什么坏处,何乐而不为呢?希望我程序猿之路可以一帆风顺!!!
好的,小白的今天又结束了,一天不学多,一个课程,学会一样理论,然后进行实践,再记录成为日记,这样或许对以后有所帮助,而且这样做也并没有什么坏处,何乐而不为呢?希望我程序猿之路可以一帆风顺!!!