Java学习总结之数据类型转换

Java中的数据类型转换分为自动的和强制的。

自动转换:

一般来说从表示范围小的类型,转向表示范围大的类型,是可以进行自动转换的,具体顺序为: byte -> short (char)-> int -> long -> float -> double

会进行自动转换的场合包括赋值和运算等。

例如 double d = 10;整数10默认为int型,赋值给double型的则自动转换为double。

又例如 x = 10/3.0;运算时自动转换为表达式中范围最大的数据类型,则10自动转换为10.0,运算结果为3.33,这里需要注意的是,如果是 x = 10/3 ;则结果为3,因为表达式中范围最大的为int型 ,则结果为int,自动舍去余数1.

另外,byte、short、char 进行运算后,结果自动转换为int,如 byte 型 + byte 型 = int 型。如果需要结果为 byte 型,需要进行强制转换。

需要强调的是,能够进行自动转换并不代表没有任何损失,例如int和float都是占4个字节,而float表示范围能够比int大,是因为有几位用来保存指数了,那么底数所占用的位数就要对应的少几位,打个比方,一个4位数,1234,也可以表示为1.234乘10的3次方,如果只给四个位置用来保存这个数,那么就只能保存指数3和底数1.23,丢掉了一个精度4。

另外,以上几种类型与String类型相加时,会自动转换为String。

 

强制转换:

不符合自动转换的顺序的,就需要进行强制转换,当 float 型转换为 int 型时,会舍弃小数位。当 int 转换为 short 时,是取低位,舍弃高位,即只保留低位的两个字节。以此类推。

 

补充:比较运算符&&,若左侧为false,则不执行右侧的代码,直接返回false,同理,||左侧若为true,则不执行右侧代码。

            ?:为右结合。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值