类型转换
- 由于Java是强类型语言,所以进行有些运算,就要类型转换
低-----------------------------------------------------高
byte,short,char一>long一>float一>double
-
运算中,不同类型的数据需要转换为同一类型,然后再进行运算
-
强制类型转换
-
自动类型转换
public class Demo05 {public static void main(String[] args) {//强制int i=128;byte b=(byte) i;//内存溢出//自动double c=i;//强制转换 (类型)变量名 高-----低//自动转换 低-----高System.out.println(i);System.out.println(b);System.out.println(c);/*注意点:1.不能对布尔值进行转换2.不能把对象类型转换成不相干的类型3.把高容量的转换成低容量,强制转换4.转换的时候可能存在内存溢出,或者精度问题*/System.out.println("=============================");System.out.println((int)23.7);System.out.println((int)-45.89f);System.out.println("=============================");char p='a';int z=p+1;System.out.println(z);System.out.println((char) z);}
}
类型转换中所遇到的问题
public static void main(String[] args) {//操作比较大的时候,注意内存溢出问题//数字之间可以用下划线分割int money=10_0000_0000;int years=20;int total=money*years;//计算的时候内存溢出了long total2=money*years;//默认int,转换之前已经存在问题了System.out.println(total);System.out.println(total2);long total3=money*((long)years);//先把一个数转换为longeSystem.out.println(total3);//L尽量用大写 l}