java的数据转换2021-10-13

本文详细解析了Java中的自动类型转换(int转long)、隐式规则,以及强制类型转换的使用场景。特别关注了字符串拼接和ASCII码在字符运算中的作用。同时提醒读者,强制类型转换可能引发溢出,应谨慎使用。
摘要由CSDN通过智能技术生成

一、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的字符串的+操作
当+操作中出现字符串时,进行的是字符串拼接操作。
在这里插入图片描述
多个+运算从左到右运算:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值