类型转换
类型转换等级
低--------------------------------------------------------->高
byte,short,char–>int–>long–>float–>double
强度转换(高到低)
int a=127;
byte b=(byte)a;
System.out.println(b);
System.out.println(a);
自动转换(低到高)
int c=23;
double d=c+1;
System.out.println(d);
System.out.println(c);
内存溢出
int a=128;
byte b=(byte)a;
System.out.println(a);
System.out.println(b);
//结果:-128-->内存溢出 byte:-128~127
精度问题
System.out.println((int)23.3);
System.out.println((int)-12.3f);
//结果:23.3 -12--->精度问题
拓展
char a='c';
int b=a+1;
System.out.println(b);
System.out.println((char)b);
//结果:100 d
//JDK新特性,数字之间可以用下划线分割
int moeny=10_0000_0000;
System.out.println(moeny);
System.out.println("===================================");
int years=30;
int total=moeny*years;//-64771072,计算的时候也内容溢出
long total2=moeny*years;//默认是int,转换之前已经存在问题了?
long total3=moeny*((long)years);//先把一个数转换成long类型
System.out.println(total3);