类型转换
public class study2 {
public static void main(String[] args) {
//类型转换(byte(1个字节),short(2),char(2)-->int(4)-->long(8)-->float(4)-->double(8))(从低到高)
int i=128;
byte b=(byte)i;
//强制类型转换 高到低 (类型)变量名
System.out.println(i);
System.out.println(b);
//自动转换 低到高
/* 注意
1.布尔型不能转化
2.不能把类型转换为不相关的类型
3.把高容量转换为低容量时强制类型转化
4.转换可能存在内存溢出或精度问题
*/
System.out.println((int)2.36);
System.out.println((int)-21.36);
char c='a';
int i1=c+1;
System.out.println(i1);
System.out.println((char)c);
//操作较大的数的时候,注意溢出
//jdk新特性,数字可以用下划线
int money=10_0000_0000;
int years=20;
int total=money*years; //-1474836480
long total1=money*years; //-147483648(转换之前就已经出现问题了)
long total3=((long)money)*(years); //20000000000(合适了)
System.out.println(total3);
}
}