JavaSE中数据类型的转换

数据类型转换分为两种,一种是自动类型转换,还有一种是强制类型转换。

整体规则大致了解

(1)基本数据类型除了布尔型以外,剩余7种类型可以相互转换。
(2)当取值范围小的类型赋给取值范围大的类型,构成自动类型转换。
byte short char int long float double(取值范围从小到大)
(3)当取值范围大的类型使用强制类型转换给取值范围小的类型的时候,但是可能会存在精度丢失。
(4)当多种数据类型进行混合运算时,则选择为取值范围大的类型然后再进行计算。

自动类型转换

1  定义:

Java程序在进行赋值或运算时,自动将精度小的转换成精度大的。

2  精度排序:

char —> int —> long —> float —> double

byte —> short —> int —> long —> float —> double(精度由小到大排序)

注意:在这个里面char byte short是平级的不能相互自动转换

3  使用规则:

  • 当有多种数据混合运算时,系统首先自动将所有数据转换成容量最大的数据类型,再进行计算。
  • 当把精度大到数据类型赋给精度小的会报错。注意在进行数值赋值时,先判断是否在该小精度数据类型范围内,如果是就可以,如果是进行变量赋值,就不行。
  • byte,short和char之间不能相互自动转换。
  • byte,short和char三者可以计算,计算时转换成为int类型。
  • boolean类型不参与转换。
  • 自动提升原则:表达式结果的类型自动转换成操作数中最大的类型。

强制类型转换

1  定义:

将容量大的数据类型装换成容量小的数据类型。使用时要加上强制转换符,但可能造成精度降低或溢出。

2  使用规则:

强制类型转换只对最近的操作数有效,往往会使用小括号提升优先级。

char类型可以保存int的常量值,但不能保存int的变量值,需要强制转换。

1 public class demo{
2    public static void main(String []args){
3      int x = (int)(10*3.5+6*1.5);//正确
4      int y = (int)10*3.5+6*1.5;//报错
5    }
6  }


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值