类型转换
字符类型容量低到高
类型的转换
public class Demo04 {
public static void main(String[] args) {
int i = 128;
byte a =(byte) i; //强制转换
double b = i; //自动转换
//强制转换 (类型)变量名 高--低
//自动转换 低--高
System.out.println(a);//-128 内存溢出
System.out.println(i);//128
System.out.println(b);//128.0
}
}
注意点:
1.不能对布尔值进行转换 即boolean类型
2.不能把对象类型转换为不相干的类型
3.在把高容量转换到低容量的时候,需要强制转换
4.转换的时候可能存在内存溢出,或者精度问题
System.out.println((int)23.7);//输出为23
System.out.println((int)-45.89f);//输出为-45
//强制转换 向下取整
类型转换
将char转换int类型输出 同时将int转换为char类型
char c ='a';
System.out.println((int)c);//转换类型 输出为 a=97
int e = c+1;
System.out.println(e);//自动转换 输出为98
System.out.println((char)e);//强转char 输出为b
1.操作比较大的数的时候,注意溢出问题
2.JDK7的新特性:数字直接可以用下划线分割
定义俩个int值输出转换为long类型 使输出正确
int money = 10_0000_0000;
int years = 20;
int a1 = money*years;
System.out.println(a1);//-1474836480,计算时内存溢出
long a2 =money*years;
System.out.println(a2);//-1474836480 计算溢出 默认是int,转换之前存在问题
long a3 =money*((long)years);//先把一个数转换为long类型
System.out.println(a3);//2000000000 输出正确