您的位置:首页 > 编程语言 > Java开发

Java数据类型间的转换

2014-05-11 23:29 169 查看

数据类型间的转换

       在Java中,整型、浮点型等都是基本的数据类型,它们是能够进行数据类型转换的。下面介绍数据类型之间的数据转换都有哪些转换方式。

1.自动转换

       所谓自动转换就是不需要明确指出所要转换的类型是什么,是由Java虚拟机自动来转换的。转换的规则就是小数据类型变大数据类型,但大的数据类型的数据精度有的时候要被破坏。

例如:

•//定义各种数据类型

•int i = 123;

•char c1 = 22;

•char c2 = 'c';

•byte b = 2;

•//自动转换的数据类型

•int n = b;

•long l = i;

2 .强制转换

     所谓强制转换,是有一种强制性的,明明不能自动转换,而强制性地进行转换。

例如:

•//定义数据类型

•int i = 22;

•long L= 33;

•//强制转换数据类型

•char c = (char)i;

•int n = (int) L;

•在上面的例子中i原来是一个int整型,但要将它强行转换成char字符型。同样L原来是一个long型,但要将它强行转换成int整型。通过前面的学习已经知道,long型的取值范围最大值可以为2的63次方减1,而int型的取值范围最大值只有2的31次方减1,所以如果L为一个大于2的31次方减1,在强制类型转换时就会丢失精度,使数值发生变化,这个是需要注意的地方。

3.隐含转换

       隐含转换和自动转换很相似,Java虚拟机根据数据类型的位数来判断此数据类型是否能装载此数据,如果能,Java就默认进行了转换。

例子1:

•byte b = 111;

例子2:

 •int i = 222;

 •byte c = (byte) i;

•在上面两条语句中有2个转换,一个是111转换成byte类型的数据库,因为byte类型的数据位数能装载下111,所以能进行转,这就是隐含转换。把222转换成byte类型的c就不能进行隐含转换,因为能进行隐含转换的只能是常量而不能是变量。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: