类型转换
-
由于Java是强类型语言,所以要进行有些运算的时候,需要用到;类型转换。
-
由低到高
byte,short,char-->int-->long-->float-->double
-
运算中,不同类型的数据先转化为同意类型,然后进行运算。
强制类型转换
例如:
int i=128;
byte b=(byte)i;//在i的前面加(byte)就可以强制类型转化
System.out.println(i);
System.out.print(b);
运行结果:
128
-128
这种情况我们称之为内存溢出,作为一个优秀的程序员一定一定要避免内存溢出的问题。
强制类型转换一般是由高到低。
自动类型转换
由低到高转换是自动类型转换,这种转换不会发生内存溢出。
注意
- 不能对布尔值进行转换
- 不能把对象类型转换为不相干的类型
- 在把高容量转换到低容量的时候,强制转换可能会存在内存溢出,或者精度问题。
数字较大时的溢出问题
int i=1_0000_0000_0;//JDK7的新特性,数字之间可以用下划线分割并且不会影响数字大小且不会被打印出来。
int b=1_0000_0000_0;
System.out.println(i*b);
运行结果:
-1486618624
解决方法:
int i=1_0000_0000_0;
int b=1_0000_0000_0;
System.out.println((long)i*(long)b);//前面加上两个类型转化就好了,优秀的程序员需要好好注意这些细节哦~~~