eclipse
jdk
在java中数据类型自动进行转换的我们称作隐式类型转换,例如byte类型转换为int类型不需要加如何操作符。重点:小容量向大容量转换为隐式类型转换。
相对于隐式类型转换,我们还有一种显示类型转换,例如 int转换为byte,重点:大容量向小容量转换为显示类型转换。显示类型转换又叫强制类型转换,例如 int a=2; byte b=(byte)a;
类型转换的一些规则,由于byte的范围是-128到127,如果你byte=128;编译是不会通过的,但是你byte a=(byte)128;是可行的,超过127以后又从-128开始,几byte a=(byte)128,结果就是-128;容量大小:①byte
此处说的混合运算为同种类型混合运算,例如:char c = 1; char c1 = 1; char c2 = c + c1;编译不会通过,由于容量范围问题,jvm为了避免错误的发生,往往会把byte,short,char混合运算时候,都先将各自转换为int类型,要想把int类型转换为char类型就需要强制类型转换。如果想要运算上面的式子我们就需要进行强制类型转换。
此处的不同类型运算的时候向大容量类型转换,参考下面的两个容量大小比较,①byte
在byte,short ,char,int,long ,double,float以及boolean类型声明中需要注意long和float,在声明的时候建议加上后缀(大小写无影响),例如long l=123L;long l1=123l;这是因为如果long l=b;系统默认的是b为int类型,把他隐式转换为long类型了,但是如果b的范围错过int的范围,那么系统就会报错。同理float f=123.0; 系统默认的小数型都为double类型,所以如果你不加后缀,那么系统就会认为float f=123.0;此处的123.0为double类型,double转换为float 就需要强制类型转换。
谢谢阅读!
收藏点赞让更多人深入了解!