public class demo03 {
public static void main(String[] args) {
int i=12;
byte b=(byte)i;
System.out.println(i);
System.out.println(b);
//强制转换 (类型)变量名 高--低
System.out.println("==============================================");
int c=128;
byte d=(byte)c;
System.out.println(c);
System.out.println(d); //内存溢出(避免溢出)
System.out.println("==============================================");
int e=128;
double f=e; //不需要添加(类型) 类型由低--高,自由转换
System.out.println(e);
System.out.println(f);
System.out.println("==============================================");
System.out.println((int)24.5); //24
System.out.println((int)-56.97); //56
// 转换的时候也有可能存在精度问题。
System.out.println("==============================================");
char g='a';
int h=g+1;
System.out.println(g);
System.out.println(h); //即a=97 (自转)
System.out.println((char)h); // 即把h转换为char类型, (char)g=a;h=a+1;so:(char)h=b; 强转。
System.out.println("==============================================");
//操作比较大的数字时,注意溢出问题
//jdk7新特性,数字之间可以用下划线分割。
int money=1000_000_000;
int years=20;
int total=money*years;
long total2=money*years;
long total3=money*((long)years);
System.out.println(total); //溢出问题。
System.out.println(total2);//默认是int,转换之前已经出现问题啦。
System.out.println(total3);//先把一个数转换为long,然后相乘。
}
}
study 4
于 2022-05-13 21:50:38 首次发布
该博客探讨了Java中的类型转换,包括从int到byte的强制转换,可能导致的溢出问题,以及类型提升过程中精度的变化。示例代码展示了整数溢出、浮点数到整数的转换以及字符与整数之间的转换。还提到了使用下划线分隔大数字以避免溢出的新特性,并通过实例展示了可能导致溢出的数学运算。
摘要由CSDN通过智能技术生成