类型转换
由于JAVA是强类型语言,所以要进行有些运算的时候的,需要用到类型转换
低--------------------------------------------------------------------->高
byte, short, char,int,long,float,double
运算中,不同类型的数据先转化为同一类型,然后进行运算
强制类型转换
自动类型转换
public class Demo4 {
public static void main(String[] args) {
int i = 128;
byte b =(byte)i;//内存溢出
//强制转换 (类型)变量名 高到低
System.out.println(i);
System.out.println(b);
int i1 =128;
double i2 =i1;
System.out.println(i1);
System.out.println(i2);//自动转换 低--高
/*
*不能对布尔值进行转换
* 不能把对象类型转换为不相干的类型
* 在把高容量转化为低容量的时候,强制转换
* 转换的时候可能存在内存溢出,或者精度问题!
*
* */
System.out.println("================================================================================");
System.out.println((int)23.7);//23
System.out.println((int)-45.89);//-45
char c ='a';
int d =c+2;
System.out.println(d);//低转高自动转换
System.out.println((char)d);
//操作比较大的数的时候注意溢出问题
//JDK7新特性,数字之间可以用下划线分割
int money =10_0000_0000;
System.out.println(money);
int years =20;
int total =money*years;
System.out.println(total);//-计算的时候溢出了
long total2 =money*years;
System.out.println(total2);//默认是int,转换之前已经存在问题了
long total3 =((long)money)*years;
System.out.println(total3);
long total4 =money*((long)years);
System.out.println(total4);
long hb =100_0000_0000L;
long hn =20L;
long total5 =hb*hn;
System.out.println(total5);
long hb1 =32000L;
short hb2 =(short) hb1;
System.out.println(hb2);
}
}