自动类型转换

(一)自动类型转换

     在java 程序中,不同的基本类型的值经常需要进行相互类型转换,类型转换分为自动类型转换和强制类型转换。布尔类型boolean占有一个字节,由于其本身所代码的特殊含义,boolean类型与其他基本类型不能进行类型的转换(既不能进行自动类型的提升,也不能强制类型转换), 否则,将编译出错。

    java的所有数值型变量可以进行相互转换,如果系统支持把某种基本类型的值直接赋值给另一种基本类型的变量,则这种方式成为自动类型转换。

     当把一个表数范围较小的数值或变量直接赋给另外一个表数范围比较大的变量时,系统将可以自动类型转换,否则需要强制转换。

    图中箭头左边的数值可以自动转换为右边的数值。

       (2)byte型可以转换为short、int、、long、float和double; 
  (3)short可转换为int、long、float和double; 
  (4)char可转换为int、long、float和double; 
  (5)int可转换为long、float和double; 
  (6)long可转换为float和double; 
  (7)float可转换为double; 

 

(二)基本类型转换为字符串

不仅如此,把任何基本类型的值和字符串进行连接运算时,基本类型的值将自动转换成为字符串类型,虽然字符串类型不是基本类型,而是引用类型。因此,如果想将基本类型的值转换为对应的字符串,可以把基本类型的值和一个空字符串进行连接。

 

   (三)强制类型转换

     强制类型转换,即强制显示的把一个数据类型转换为另外一种数据类型。

    如果希望图中箭头右边的类型转换为左边的类型,则必须进行强制类型转换,强制类型转换的格式:

  (targetValuevalue

    强制类型转换的运算符是圆括号,当进行强制类型转换的时候,类似把一个大瓶里的水倒入一个小瓶子,如果大瓶子里的水不多还好,如果大瓶子了的水很多,将会引起溢出,从而造成数据丢失这种转换也被称为缩小转换。

(四)表达式的自动提升

   当一个算数表达式中包含多个基本类型的值的时候 ,整个算数表达式的数据类型将发生自动提升。java定义了如下的自动提升规则:     1 所有的byte类型,short类型和char类型将被提升到int类型。     2 整个算数表达式的数据类型自动提升到与表达式中最高等级操作数同样的类

(五)总结

1    java中整数类型默认是int类型,小数类型默认是double类型。

2    char可以当做一种特殊的整数类型

3    int无法转换为boolean

4    小数类型转为整数类型,小数可能被舍弃,出现精度损失,所以需要强制转换。

5    boolean 类型不能转换为其它数据类型。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章