一、java的数据类型转换
Java的数据类型取值范围排序:
byte<short<int<long<float<double
1.自动类型转换(隐式)
规则:数据范围从小的转化为大的。如int->long,long num = 100;
隐式转换在算数运算中的运用:
(1)取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算。
(2)byte、short、char三种类型的数据在运算时,都会直接先提升为int,然后再进行运算。
注意这里的数据范围不是存储大小,例如long类型(占8字节)可以隐式转换为float类型(占4个字节)。
下例的输出结果为30.0。
2.强制类型转化(显式):数据范围从大的转化为小的,不符合自动类型转化的转换方式 如:int num = 100L;//报错
格式:范围小的类型 范围小的变量名 = (范围小的类型)原来范围大的类型
如:int num = (int) 100L;//不报错
PS:上例的强制类型转换可以完成是因为原来范围大的类型的数据值没有超过转换成的数据类型的范围,若是超过了强制转换会溢出(溢出不会报错,但是转换后数据的值会改变或者精度损失),所以强制转换不推荐使用。
例外:
如:char a = 65;//不报错,虽然int类型的数据范围比char类型大。
这个例外只对常量有用,含有变量不行。
例如short a=1;short b=2;short c=a+b;//报错,a和b相加时自动转换为int型,结果为int型,报错。
下例输出结果为3:
3.bool类型不能进行数据类型转换,bool类型的true和flase不能当作1和0对待。
4.ASCII码(字符的+操作)
当进行“字符+字符”或“字符+数字”的操作时,会把字符通过ASCII码表查询到对应的数字再进行计算。
下例输出结果为20013,有的编译器下会报错:
二、java的字符串的+操作
当+操作中出现字符串时,进行的是字符串拼接操作。
多个+运算从左到右运算:
java的数据转换2021-10-13
于 2021-10-13 23:29:26 首次发布
本文详细解析了Java中的自动类型转换(int转long)、隐式规则,以及强制类型转换的使用场景。特别关注了字符串拼接和ASCII码在字符运算中的作用。同时提醒读者,强制类型转换可能引发溢出,应谨慎使用。
摘要由CSDN通过智能技术生成