基本数据类型转换规则
在类型转换的时候需要遵循的规则
1、八种基本数据类型除boolean类型不能转换,剩下的七种类型之间都可以进行转换。
2、如果整数型字面量没有超出byte、short、char取值范围的话,可以直接将整数赋值给byte、short、char类型的变量。
3、自动类型转换:小容量向大容量转换,byte<short(char)<int<long<float<double,其中short和char都各占两个字节,但是char可以表示更大的正整数。
4、强制类型转换:大容量转换成小容量,编写时必须添加“强制类型转换符”。但运行时可能出现精度损失,谨慎使用。
5、byte、short、char类型混合运算时,先各自转换成int类型再运算。
6、多种数据类型混合运算时,先各自转换成容量最大的那一种再做运算。
1.public class TestVar10{ 2. public static void main(String[] args){ 3. //类型转换的两种形式: 4. double d = 6;//int-->double 自动类型转换 5. System.out.println(d); 6. int i = (int)6.5;//double--->int 强制类型转换 (强转) 7. System.out.println(i); 8. 9. //在同一个表达式中,有多个数据类型的时候,应该如何处理: 10. //多种数据类型参与运算的时候,整数类型,浮点类型,字符类型都可以参与运算,唯独布尔类型不可以参与运算。 11. //double d2 = 12+1294L+8.5F+3.81+'a'+true; 12. double d2 = 12+1294L+8.5F+3.81+'a'; 13. System.out.println(d2); 14. /* 15. 类型级别:(从低到高的) 16. 17. 级别用来做什么?当一个表达式中有多种数据类型的时候,要找出当前表达式中级别最高的那个类型,然后 18. 其余的类型都转换为当前表达式中级别最高的类型进行计算。 19. double d2 = 12+1294L+8.5F+3.81+'a'; 20. = 12.0+1294.0+8.5+3.81+97.0 21. */ 22. int i2 = (int)(12+1294L+8.5F+3.81+'a'); 23. System.out.println(i2); 24. /* 25. 在进行运算的时候: 26. 左=右 : 直接赋值 27. 左<右 :强转 28. 左>右 :直接自动转换 29. */ 30. 31. //以下情况属于特殊情形:对于byte,short,char类型来说,只要在他们的表数范围中,赋值的时候就不需要进行 32. //强转了直接赋值即可。 33. byte b = 12; 34. System.out.println(b); 35. byte b2 = (byte)270; 36. System.out.println(b2); 37. 38. 39. 40. } 41.}
心有所想,必有回响