疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

Java编程中的强制类型转换


 

   java中8中数据类型的取值范围

  Boolean 布尔型 只有两个值true、false

  Char 字符型

  Byte 8位带符号整数 -128到127之间的任意整数

  Short 16位无符号整数 -32768~32767之间的任意整数

  Int 32位带符号整数 -2^31到2^31-1之间的任意整数

  Long 64位带符号整数 -2^63到2^63-1之间的任意整数

  Float 32位单精度浮点数 根据IEEE754-1985标准

  Double 64位双精度浮点数 根据IEEE754-1985标准

  一.Java 的自动转换

  如果下列2个条件都能满足,那么将一种类型的数据赋给另外一种类型变量时,将执行自动类型转换(automatic type conversion):

  1.这2种类型是兼容的。

  2.目的类型数的范围比来源类型的大。

  当以上2个条件都满足时,拓宽转换(widening conversion )发生。例如,int 型的范围比所有byte 型的合法范围大,因此不要求显式强制类型转换语句。对于拓宽转换,数字类型,包括整数(integer )和浮点(floating-point )类型都是彼此兼容的,但是,数字类型和字符类型(char)或布尔类型(bollean )是不兼容的。字符类型(char )和布尔类型(bollean )也是互相不兼容的。

  二. 不兼容类型的强制转换

  其中,目标类型(target-type )指定了要将指定值转换成的类型。例如,下面的程序段将int 型强制转换成byte 型。如果整数的值超出了byte 型的取值范围,它的值将会因为对byte 型值域取模(整数除以byte 得到的余数)而减少。

  Java代码:

  1.int a;

  2.byte b;

  3.// ...

  4.b = (byte) a;