华为ICT培训-高端面授华为ICT培训机构
云和教育:云和数据集团高端IT职业教育品牌
  • 华为
    授权培训中心
  • 腾讯云
    一级认证培训中心
  • 百度营销大学
    豫陕深授权运营中心
  • Oracle甲骨文
    OAEP中心
  • Microsoft Azure
    微软云合作伙伴
  • Unity公司
    战略合作伙伴
  • 普华基础软件
    战略合作伙伴
  • 新开普(股票代码300248)
    旗下丹诚开普投资
  • 中国互联网百强企业锐之旗
    旗下锐旗资本投资
当前位置:
首页IT问答正文

Java培训:面向对象的隐式转换和强制转换

  • 发布时间:
    2022-12-19
  • 版权所有:
    云和教育
  • 分享:

隐式转换

隐式转换也叫自动类型提升。就是把一个取值范围小的数据或者变量,赋值给另一个取值范围大的变量。此时不需要我们额外写代码单独实现,是程序自动帮我们完成的。简单来说就是小的给大的,可以直接给。

两种提升规则:
取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算。

byte、short、char三种类型的数据在运算的时候,都会直接先提升为int,然后再进行运算。

理解隐式转换从大到小的关系:

byte short int long float double

例如:

java
byte b = 100;
int i = b;//可以成功赋值

因为byte的取值范围是小的,int的取值范围是大的,在底层进行了隐式转换,不需要我们额外写代码单独实现,是可以直接赋值。

强制转换

如果要把一个取值范围大的数据或者变量赋值给另一个取值范围小的变量。是不允许直接操作。如果想要直接操作的话,就需要加入强制转换。

目标数据类型 变量名 = (目标数据类型)被强转的数据;

总结:写在小括号中的就是想要转换的类型。强制转换有可能会导致数据发生错误。(数据的精度丢失)