1. 自动类型提升
当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。
大概顺序:byte、char、short —> int —> long —> float —> double
特别是当byte、char、short三种类型的变量做运算时,结果都是int型
比如:
byte a=12;
//byte b=a+1; 该句运行会报“不兼容的类型: 从int转换到byte可能会有损失”的编译错误
byte b= (byte) (a+1);//只有这样强转才可以,同理针对char和short也是一样的。
float f=a+12.3;//这个也会编译失败
2.强制类型转换
也就是自动类型提升运算的逆运算。
1)需要使用强转符:(数据类型)
2)强转可能会导致精度缺失
3.其他类型转String
1)通过 String.valueOf()实现,括号几乎包含任何类型;
如:String s=String.valueOf(true);//s的值是“true”
String s=String.valueOf(123);//s的值是“123”
String s=String.valueOf(123.123);//s的值是"123.123"
2)通过包装类的toString()方法实现
如:String s=new Boolean(true).toString;//s的值是“true”
String s=new Integer(123).toString;//s的值是“123”
String s=new Double(123.123).toString;//s的值
3)注意char转String只能是通过char数组来转
4.String转其他类型
1)通过包装类的valueOf()方法;
如: int num=Integer.valueOf("12");//num的值为12
double num=Double.valueOf("12.23");//num的值为12.23
2)通过包装类的parseXXX(),XXX表示数据类型
如: int num=Integer.parseInt("12");//num的值为12
double num=Double.parseDouble("12.23");//num的值为12.23
3)String转char,得到的是一个char数组