我们知道基本数据类型的取值范围是不同的,有些小伙伴想对它们之间进行相互的转换。这里我们要先选择一种转换的类型,是自动还是强制,还要考虑转换之间的大小问题。接下来我们先对转换类型进行了解,然后就两种不同的类型分别阐释,下面我们看看是如何转换的吧。
1.转换类型
自动转换(隐式):无需任何操作。
强制转换(显式):需使用转换操作符(type)。
将6种数据类型按下面顺序排列一下:
double > float > long > int > short > byte
如果从小转换到大,那么可以直接转换,而从大到小,或char 和其他6种数据类型转换,则必须使用强制转换。
2.自动类型转换
自动转换时发生扩宽(widening conversion)。因为较大的类型(如int)要保存较小的类型(如byte),内存总是足够的,不需要强制转换。如果将字面值保存到byte、short、char、long的时候,也会自动进行类型转换。
long l = 100; int i = 200; long ll = i;
3.强制类型转换
如果要把大的转成小的,或者在short与char之间进行转换,就必须强制转换,也被称作缩小转换(narrowing conversion),因为必须显式地使数值更小以适应目标类型。
short s = 199; int i = s;// 199 double d = 10.24; long ll = (long) d;// 10
以上就是java中基本数据类型的两种转换方法了。对于强制转换的使用条件大家一定要牢记,不然错用了自动类型的转换。