Java初学者笔记五:类型转换
类型转换
- 强制类型转换 高 —> 低
- 自动类型转换 低 —> 高
-
Java是强类型语言,所以要进行有些运算时,需进行类型转换。
-
运算中,不同类型的数据先转换为同一类型,然后进行运算。
-
不能对布尔值进行转换。
-
不能把对象类型转换为不相干的类型。
-
在把高容量转换到低容量的时候,强制转换。
-
转换的时候可能存在内容溢出或精度问题。
-
低>高(容量)byte, short, char ---> int ---> long ---> float ---> double(小数优先级大于整数)
//强制转换 int i = 128; byte b = (byte)i;//内存溢出,byte类最大值为127。(类型)变量名为强制转换。 System.out.println(i); //输出为128 System.out.println(b); //输出为-128,内存溢出 //精度丢失 System.out.println((int)23.7); //输出结果为23 System.out.println((int)-45.89f); //输出结果为-45 //自动转换 int i = 128; double b = i; System.out.println(i); //输出为128 System.out.println(b); //输出为128.0 char c = 'a'; int d = c+1; System.out.println(d); //输出结果为98 System.out.println((char)d); //输出结果为b int money = 10_0000_0000; int years = 20; int total = money*years; System.out.println(total);//输出结果为-1474836480,计算时溢出。 long total2 = money*years; System.out.println(total2);//输出结果为-1474836480,默认为int,输出结果也为int类。 //解决办法 long total3 = money*((long)years); //先把一个数转换为long System.out.println(total3); //输出结果为20000000000
浙公网安备 33010602011771号