类型转换
由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。
低=================================高
byte,short char>int>long>float>double
运算中,不同类型的数据先转换为同一类型,然后进行运算
public class Demo04 {
public static void main(String[] args) {
int i=128;
double b=(double)i;//内存溢出
//强制转换 (类型)+变量名 低-----高
//强制转换 高---------低 直接操作
System.out.println(i);
System.out.println(b);
/*
注意点
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.再把高容量转换到低容量时,强制转换
在转换过程中可能存在内存溢出,或者精度问题!
*/
System.out.println((int)23.7);
System.out.println((int)-451.32f);
char c ='a';
int d =c+1;
System.out.println(d);
System.out.println((char) d);
}
}
内存溢出的问题
public class Demo05 {
public static void main(String[] args) {
int money =2000000000;
int years =100;
int total = money*years;//-1863462912说明已经溢出
System.out.println(total);
long total1=money*years;//默认是int,转换之前已经存在问题了 (运算时用的是int计算,计算完成达到-1863462912转换成long)
long total2=((long)money)*years;//在运算时将int转换为long
System.out.println(total1);
System.out.println(total2);
}
}