在Java程序中,不同的基本类型的值经常需要在不同类型之间进行转换。Java中提供了7个数值类型之间可以相互专转换,有两种类型转换方式:自动类型转换和强制类型转换。

》自动类型转换

  把一个基本类型的值赋给另一个基本类型的变量,这种方式被称为自动类型转换。

表数范围小的数值或变量直接赋值给表数范围大的变量时,系统可以自动类型转换。

箭头右边数值类型可以自动类型转换为箭头右边的数值类型,上例子:

不仅如此,当把基本类型的值和字符串值进行连接时,基本类型值将自动转换为字符串型,虽然字符串类型不再是基本类型,而是引用类型。因此, 如果希望吧基本类型转换为对应的字符串,可以把基本类型的值和一个空字符串进行连接。

》强制类型转换

把箭头右边的类型转换为箭头左边的类型 ,则需要强制类型转换,强制类型转换的语法:(变量类型)value,当进行强制类型转换的时候,就相当于把大瓶子里面的水倒入小瓶子里,大瓶子里面的水比小瓶子里面的水少的时候还好,如果多的时候,就容易溢出,从而造成数据丢失。

上面把233强制转换为byte类型整数时,从而变成了-23,这就是典型的溢出。

转换过程:

从32位的int型强制转换为8位的byte型过程,要截取前面的24位,只保留下8位,此处最左边的是一个符号位,此处表明是一个负数,负数在计算机当中是以补码形式存在的,因此还需要换算成源码。

 

 posted on 2017-07-29 13:58  【邵江】  阅读(259)  评论(0编辑  收藏  举报