类型转换

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);



}

}

posted @ 2022-01-16 21:37  流年忘却悲伤  阅读(15)  评论(0编辑  收藏  举报