Java数据类型转换
一、 自动类型转换
char > int > long > float > double
byte > short > int > long > float > double
-
大小同算,小全转大
-
小赋值大,精度损失
-
(byte, short) 和 char 之间不会相互自动转换
byte a = 10 //当把具体的数赋值 byte 时, 先判断该数是否在 byte 范围内,如果是就赋值成功
-
byte, short, char 可以相互计算,在计算时先转成int类型
byte a = 1 byte b = 2 // a + b 最终会转成int类型,因此用byte接收会报错 byte c = a + b
-
boolean不参与转换
二、 强制类型转换
-
强转符号只针对最近的操作数有效,往往会使用小括号提升优先级(强转就近,括号优先)
int x = (int)10*3.5+6*1.5 //(int)只对10有效,因此右边的计算结果为double类型,用int接收会报错 int x = (int)(10*3.5+6*1.5) //正确写法
-
char可以保存int的常量值,但不能保存int变量值,需要强转(字符整型,编码才灵)
char c1 = 100 //true,输出100对应的ASCII码的字符 int a1 = 100 //true c1 = a1 //false c1 = (char)a1 //true,输出100对应的ASCII码的字符
三、 String类型与基本数据类型转换
-
基本数据类型 > String
基本数据类型 + “”
-
String > 基本数据类型
包装类的parse方法,如Integer.parseInt(“123”)