java中不同数据类型之间的转换
在java运算中,经常要涉及到不同数据类型的转换,首先,下图表示各种数据类型中的合法转换:
其中,实线表示数据不会丢失的转换,虚线表示可能会有数据丢失的转换。
1 运算时自动转换
当一个二元运算符作用于两个数时,两个操作数首先被转换为同一类型,转换的原则如下
(1)如果两个操作数之中有一个为double类型,另一个转换为double类型;
(2)否则,如果两个操作数之中有一个为float类型,另一个被转换为float类型;
(3)否则,如果两个操作数之中有一个为long类型,另一个被转换为long类型;
(4)否则,两个操作数都被转换为int类型;
2 强制转换
当一个数的类型不会自动转换为所需要的数据类型时,需要强制转换cast,虽然这么做有时会伴随着数据信息的丢失。注意,boolean类型数据与任一数值型数据之间不能相互转换,如果强制转换,会出现编译错误。