按字节大小从低到高→ byte,short,char→int→long→float→double 不同类型的数据先转换为同一类型,再进行计算
强制转换 高→低
public class Annotation {
public static void main(String[] args) {
int name1 = 128;
byte name2 = (byte)name1;//内存溢出,byte最大127,最小-128
System.out.println(name1);
System.out.println((int)name2);
//强制转换 (类型)变量名
}
}
运行结果:
128
-128
自动转换 低→高
public class Annotation {
public static void main(String[] args) {
int name1 = 128;
double name2 = name1;
System.out.println(name1);
System.out.println((int)name2);
}
}
运行结果:
128
128
注意
-
不能对布尔值进行转换
-
转换的时候可能会出现内存溢出,或者精度问题
public class Annotation {
public static void main(String[] args) {
double num1 = -1.33;
double num2 = 12.33;
System.out.println((int)num1);
System.out.println((int)num2);
}
}
输出结果:
-1
12
-
jdk7新特性:数字之间可以用下滑线分割,用较大的数就更方便了
public class Annotation {
public static void main(String[] args) {
int num1 = 1_0000_0000_0;
System.out.println((int)num1);
}
}
输出结果:
1000000000