java类型转换

来源:互联网 发布:手机上能关淘宝店吗 编辑:程序博客网 时间:2024/06/11 03:48

boolean

  • boolean不可以转换为其他的数据类型

隐式自动类型转换

  • 隐式自动类型转换

    (byte,short,char) < int < long < float < double

byte  ---》    shortintlongfloatdoubleshort ---》    intlongfloatdoublechar  ---》    int, longfloatdoubleint   ---》    longfloatdoublelong  ---》    floatdoublefloat ---》    double
  • byte能自动转为short,除此,byte,short,char不能自动相互转换
  • 有多种数据类型混合计算的时候,系统首先自动转换为容量最大的那个类型再来继续计算

强制类型转换

  • 容量大的类型在转换为小的类型的时候,必须加上强制转换符,此时可能造成精度降低或者溢出问题
  • 当转换为精度和范围较小的类型时,可能会丢失数据。
int i1 = 128;  byte b = (byte)i1;  int i2 = b;  System.out.println("转换前:" + i1);  System.out.println("转换后:" + i2); /*    转换前:128    转换后:-128/*

byte数据类型范围为-128~127

提升原则

在算术运算和位运算中,数值类型的数据按以下原则进行类型提升
算术运算和位运算byte、short和char型自动转成int型,如:

byte b1=3;byte b2=5;byte c=b1+b2;  //错误,运算时b1和b2已转换为intint d=b1+b2;  //正确
byte b=10;short s=9;char c ='c';short r1=b+s;    //错误int r2= (b==10)?b:s;  //正确short r3= (b==10)?b:s;  //正确byte r4= (b==10)?b:s;  //错误
  • 在其他情况的运算中,运算的对象会自动转换为精度和范围高的类型
0 0
原创粉丝点击