Java基本类型,默认取值,取值范围,数据转换

来源:互联网 发布:返利网淘宝卖家知道吗 编辑:程序博客网 时间:2024/06/05 04:13


自动类型转换

Java支持自动类型转换的类型如下所示,左边的数值类型可以自动类型转换成箭头右边的数值类型。

1),byte->short->int->long->float->double

2),char->int->long->float->double

 {          // 下面3行代码int类型自动转换成float类型          int a = 6;          long b = a;          System.out.println(b);      }
如果希望把基本类型的值转换为对应的字符串时,可以把基本类型的值和一个空字符串进行连接。

{          // 一个基本类型的值和字符串进行连接运算,基本类型的值自动转换成字符串          int a = 6;          System.out.println(a + "");          // 下面的语句输出7LinkinPark          System.out.println(3 + 4 + "LinkinPark");          // 下面的语句输出LinkinPark34          System.out.println("LinkinPark" + 3 + 4);      }

强制类型转换

如果希望上面自动转换中,箭头右边的类型转换成左边的类型,则必须进行强制类型转换。

强制类型转换的语法格式:(targetType)value,强制类型转换的运算符是圆括号(())。

当进行强制类型转换时,类似于把一个大瓶子里面的水倒入一个小瓶子,如果大瓶子里面的水不多还好,如果大瓶子里面的水很多

,将会引起溢出,从而造成数据丢失。

这种类型也称为缩小转换。

  {          // 下面3行代码输出-23,典型的溢出          int intValue = 233;          byte byteValue = (byte) intValue;          System.out.println(byteValue);          // 下面3行代码输出3,典型的信息丢失          double doubleValue = 3.14;          int iValue = (int) doubleValue;          System.out.println(iValue);      }


表达式类型的自动提升

当一个算数表达式包含多个基本类型的值时,整个算术表达式的数据类型将发生自动提升。

    {          // 下面2行代码出错,shortValue类型参与运算,类型自动提升到int          // 将一个int类型的值赋给一个short类型的值,编译不过          short shortValue = 5;          shortValue = shortValue - 2;          // 下面4行代码正确,3个不同类型的值参与运算,类型提升到最高的类型          // double,int,byte中,double类型最高,所以结果double类型          byte byteValue = 4;          int intValue = 1;          double doubleValue = 2.33;          double result = byteValue + intValue + doubleValue;          System.out.println(byteValue + intValue + doubleValue);          // 下面代码的类型同样为double          System.out.println(doubleValue / intValue);      }


原创粉丝点击