全球旧事资料 分类
尚学堂JAVA最全教程
配合JAVA300集视频课程,一集一个文档本文档配合:java300集第一季010集【最新文档更新请加入尚学堂wwwbjsxtc
】【专业JAVA培训机构真正零首付入学wwwbjsxtcom】
自动类型转换:
自动类型转换:容量小的数据类型可以自动转换为容量大的数据类型。在图中,黑色的实线表示无数据丢失的自动类型转换,而红色的虚线表示在转换时可能会精度的损失。特例可以将整型常量直接赋值给byteshortchar等类型变量,而不需要进行强制类型转换,只要不超出其表数范围Shortb12合法shortb1234567非法
强制类型转换(Cast):强制类型转换,又被称为造型,用于显式的转换一个数值的类型在有可能丢失信息的情况下进行的转换是通过造型来完成的,但可能造成精度降低或溢出。强制类型转换的语法格式:“typevar”,运算符“”中的type表示将值var想要转换成的目标数据类型。例如:doublex314;i
t
xi
tx值为3charcai
tdc1Systemoutpri
tl
dSystemoutpri
tl
chard当将一种类型强制转换成另一种类型,而又超出了目标类型的表示范围,就会被截断成为一个完全不同的值。例如:i
tx300
fbytebxbytex值为44不能在布尔类型和任何数值类型之间做强制类型转换。如果需要把布尔类型转换成一个数字该怎么办呢
基本类型转化时常见错误和问题:
1操作比较大的数时,要留意是否溢出,尤其是整数操作时。i
tmo
ey1000000000i
tyears20i
ttotalmo
eyyearslo
gtotal1mo
eyyears10亿返回的是负数返回的仍然是负数。默认是i
t,因此结果先将一个因子变成lo
g,整
会转成i
t值,再转成lo
g。但是已经发生了数据丢失lo
gtotal2mo
eylo
gyears个表达式发生提升。全部用lo
g来计算。2L和l的问题:1不要命名名字为l的变量2lo
g类型使用大写L不要用小写。i
tl2lo
ga23451lSystemoutpri
tl
l1
课堂代码
测试自动转型和强制转型publicclassTestCastpublicstaticvoidmai
Stri
gargsbyteb123byteb2300charc3charc2ai
tic2lo
gd01123213floatfd01测试强制转型i
ti2100charc3chari2100超过char的表数范围,所以转换成完全不同的值,无意义的值!Systemoutpri
tl
c3
f表达式中的类型提升问题i
ta3lo
gb4doubled53i
tci
tab做所有的二元运算符,都会有类型提升的问题!floatffloatadi
tmo
ey100000000010亿i
tyears20lo
gtotallo
gmo
eyyearsSystemoutpri
tl
total一个人70年心跳多少次r
好听全球资料 返回顶部