由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。
转换类型根据容量即字符大小由低到到进行转换,浮点类型优先级一定大于整型。
运算中,不同类型的数据先转化为同一类型,然后再进行运算。
注意:
不能对布尔类型的变量进行类型转换。
不能把对象类型转换为不相干的类型。
在把高容量类型转换为低容量类型的时候需要使用强制类型转换。
转换的时候可能存在内存溢出或精度问题。
public class Demo5 { public static void main(String[] args) { int num1 = 128; byte b = (byte)num1; System.out.println(num1); //打印结果为128 System.out.println(b); //打印结果为-128 System.out.println((int)128.45); //打印结果为128 System.out.println((int)-456.11f); //打印结果为-456 } }
在变量前加上括号()并在括号中写出目标类型即强制类型转换,即(数据类型)变量名。
由高类型往低类型转换需不超过低类型的容量。
如以上代码中,byte类型变量的范围为-128至127,而变量num1的值为128,强制将变量num1的值转换成byte类型后,内存产生溢出,则值循环。
注意:
内存的溢出在转换类型的时候就已经产生了。
浮点类型的数据在转换为整型时,会产生精度的丢失。
public class Demo6 { public static void main(String[] args) { int num1 = 128; double num2 = num1; System.out.println(num1); //打印结果128 System.out.println(num2); //打印结果128.0 } }
从低类型往高类型转换数据不需要强制转换,其变量是自动转换的。