Java02-类型转换
类型转换
由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换
低 -------------------------------------------> 高
byte,short,char -> int -> long -> float -> double
低转到高:自动转换
高转到低:强制转换
public class Demo04 {
public static void main(String[] args) {
int i = 128;
byte b = (byte) i; //强制转换
double d = i; //自动转换
//强制转换 (类型)变量名 高--低
//自动转换 低--高
System.out.println(i);//128
System.out.println(b);//-128 内存溢出
System.out.println(d);//128.0
/*
注意点:
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.在把高容量转换到低容量的时候,强制转换
4.转换的时候可能存在内存溢出,或者精度问题!!!
*/
System.out.println("==============");
System.out.println((int) 32.7);//32
System.out.println((int)-45.89f);//45
System.out.println("==============");
char c = 'a';
int e = c+1;
System.out.println(c);//a
System.out.println(e);//98
System.out.println((char)e);//b
//操作比较大的数的时候,注意溢出问题
//JDK7新特性,数字之间可以用下划线分割
int money = 10_0000_0000;
System.out.println(money);//1000000000
int years = 20;
int total = money*years;
System.out.println(total);//-1474836480,计算时候溢出了
long total2 = total;//默认是int,转换之前已经存在问题了
System.out.println(total2);//-1474836480
long total3 = money*((long)years);//在定义long类型的时候,尽量数字末尾用L
System.out.println(total3);//20000000000
}
}
}

浙公网安备 33010602011771号