优质课程 贴心服务
机构入驻 >
学员试听 >
试听课程申请
看不清,请点击刷新
立即申请
机构入驻申请
看不清,请点击刷新
立即申请
试听课程申请
看不清,请点击刷新
立即申请
机构入驻申请
看不清,请点击刷新
立即申请
课程分类
寻客吧 > 教育新闻 > 电脑培训 >  基本类型之间的转换
基本类型之间的转换
来源:寻客吧  编辑:保定达内  浏览:214次  2025-06-10 14:13:23

  基本类型之间的转换
  将一种类型的值赋值给另一种类型是很常见的。在Java中,boolean类型与其他7中类型的数据都不能进行转换,这一点很明确。但对于其他7种数据类型,它们之间都可以进行转换,只是可能会存在精度损失或其他一些变化。
  转换分为自动转换和强制转换:
  自动转换(隐式):无需任何操作。
  强制转换(显式):需使用转换操作符(type)。
  将6种数据类型按下面顺序排列一下:
  double>float>long>int>short>byte
  如果从小转换到大,那么可以直接转换,而从大到小,或char和其他6种数据类型转换,则必须使用强制转换。
  1、自动转换
  自动转换时发生扩宽(widening conversion)。因为较大的类型(如int)要保存较小的类型(如byte),内存总是足够的,不需要强制转换。如果将字面值保存到byte、short、char、long的时候,也会自动进行类型转换。注意区别,此时从int(没有带L的整型字面值为int)到byte/short/char也是自动完成的,虽然它们都比int小。在自动类型转化中,除了以下几种情况可能会导致精度损失以外,其他的转换都不能出现精度损失。
  》int-->float
  》long-->float
  》long-->double
  》float-->double without strictfp
  除了可能的精度损失外,自动转换不会出现任何运行时(run-time)异常。
  2、强制类型转换
  如果要把大的转成小的,或者在short与char之间进行转换,就必须强制转换,也被称作缩小转换(narrowing conversion),因为必须显式地使数值更小以适应目标类型。强制转换采用转换操作符()。严格地说,将byte转为char不属于narrowing conversion),因为从byte到char的过程其实是byte-->int-->char,所以widening和narrowing都有。强制转换除了可能的精度损失外,还可能使模(overall magnitude)发生变化。强制转换格式如下:
  (target-type)value;
  如果整数的值超出了byte所能表示的范围,结果将对byte类型的范围取余数。例如a=256超出了byte的[-128,127]的范围,所以将257除以byte的范围(256)取余数得到b=1;需要注意的是,当a=200时,此时除了256取余数应该为-56,而不是200。
  将浮点类型赋给整数类型的时候,会发生截尾(truncation)。也就是把小数的部分去掉,只留下整数部分。此时如果整数超出目标类型范围,一样将对目标类型的范围取余数。
  7种基本类型转换总结如下图:
  3、赋值及表达式中的类型转换
  3.1、字面值赋值
  在使用字面值对整数赋值的过程中,可以将int literal赋值给byte short char int,只要不超出范围。这个过程中的类型转换时自动完成的,但是如果你试图将long literal赋给byte,即使没有超出范围,也必须进行强制类型转换。例如byte b=10L;是错的,要进行强制转换。
  3.2、表达式中的自动类型提升
  除了赋值以外,表达式计算过程中也可能发生一些类型转换。在表达式中,类型提升规则如下:
  ·所有byte/short/char都被提升为int。
  ·如果有一个操作数为long,整个表达式提升为long。float和double情况也一样。
  拓展知识点:Java是面向对象语言,其概念为一切皆为对象,但基本数据类型算是个例外哦,基本数据类型大多是面向机器底层的类型,它是“值”而不是一个对象,它存放于“栈”中而不是存放于“堆”中,但Java一切皆为对象的概念不是说说而已,它为每一个基本数据类型都做了相应的包装类,我们日常使用中大多情况下都会使用着这些包装类:
  boolean Boolean
  char Character
  byte Byte
  short Short
  int Integer
  long Long
  float Float
  double Double
  String(字符串)
  包装类就是一个对象,它存放于“堆”中。

免责声明:
本文部分系转载,转载目的在于传递更多信息,如涉及作品内容、版权和其它问题,请在30日内与我们联系重改或删除,以保证您的权益!
相关新闻
更多>
广州有名的直播电商培训机构有哪些
广州有名的直播电商培训机构有哪些,电商直播行业近年来呈现爆发式...
广州电商运营去哪个平台学习效果好
广州电商运营去哪个平台学习效果好,随着电商行业的迅猛发展,越来越...
广州阿里巴巴运营去哪家机构实力强
广州阿里巴巴运营去哪家机构实力强,阿里巴巴作为蕞大的电商平台之...
广州想学抖音直播该去哪里学习
广州想学抖音直播该去哪里学习,随着抖音平台的迅猛发展,许多人成为...