基本数据类型转换
自动类型转换
1、Java 程序进行赋值或运算时,精度小的数据类型自动转换为精度大的数据类型
2、数据类型精度(容量)按大小排序
(1)char -> int -> long -> float -> double
(2)byte -> short -> int -> long -> float -> double
3、自动提升原则:混合多种数据类型运算,系统先自动将所有数据,转换成当前表达式中精度的最大数据类型,再运算
4、精度大的数据赋值给精度小的数据类型,会报错
5、byte、short 和 char 之间不会自动转换
6、byte、short、char 之间可以进行运算,但运算前先转换为 int
7、boolean 不参与转换
//正确,具体数值会先判断是否在该类型的范围内,再声明类型
byte b1 = 10;
//错误,变量赋值时,直接判断类型,以为 i2 已经被声明为 int,而 int 不能自动转换为 byte
int i2 = 10;
byte b2 = i2;
8、被 final 修饰的变量不会自动的改变类型,当两个 final 修饰的变量操作时,结果会根据左边变量的类型而转换
强制类型转换
1、自动类型转换的逆过程,数值要加上强制转换符:(数据类型)
(1)可能造成:精度降低、数据溢出
(2)当数据溢出截断后,是以补码形式存在
2、强制转换符只对最近的操作数有效,常用小括号提升优先级
//错误,只有10为int,10 * 3.5就转换为double
int x = (int) 10 * 3.5 + 6 * 1.5;
//正确,小括号内运算结果为44.0(double),然后再强制转换为int
int y = (int) (10 * 3.5 + 6 * 1.5);
3、char 类型可以保存 int 常量值,不能保存 int 变量值,需要强制转换
基本数据类型、String 类型相互转换
1、基本数据类型转 String 类型
(1)基本类型数据的值 + "";(常用)
(2)包装类的静态方法:toString
(3)String 类的静态方法:value0f
2、String 类型转基本数据类型
(1)包装类的静态方法 parseXXX
(2)字符串截取字符:charAt 方法
(3)String 类型转成基本数据类型时,确保 String 类型能转换成有效数据

浙公网安备 33010602011771号