JAVA基本数据类型转换
JAVA不像PHP,JS,Python,是一门强类型语言,强类型语言就必定会涉及不少的强制类型转换,作为基础中的基础,有必要先熟悉JAVA的基本数据类型转换
本博文主要分为以下两部分:
- 主要内容
- 注意事项
一,主要内容
1,JAVA基本数据类型:boolean,byte,short,char,int,long,float,double
2,基本数据类型的分类:boolean为布尔类型;byte,short,int,long为整型;float,double为实型;char为字符型
3,boolean类型不可以转换为其他的数据类型
4,表示范围从小到大:byte,short,char–>int–>long–>float–>double
5,表示范围小的数据类型可以自动转换为表示范围大的数据类型,表示范围大转换为表示范围小的数据类型才需要强制类型转换
二,注意事项
1,从上面第4点知道,JAVA将byte,short,char表示范围归为一个层次,因此byte,short,char不会相互转换,这三者在计算的时候都会首先转换成int型
byte b1 = 11;
byte b2 = 10;
byte b = (byte)(b1+b2); //注意此处要byte强制类型转换,虽然b1 b2都是byte型,但是运算的时候首先会转换成int型
2,表示范围大的数据类型强制转换成表示范围小的数据类型时,需要特别注意可能会造成精度降低或者溢出的问题、
byte b1 = 66;
byte b2 = 67;
byte b = (byte)(b1+b2); //此时的b1+b2大于127,超出byte表示范围,强制类型转换时会把前三个字节的数据去掉,这是整型溢出时的做法,实型的不同,因为浮点数表示的方法和整数不一样,double转换成float超出表示范围时会出现INF无穷大。
3,有多种数据类型进行混合运算时,JAVA会先将所有数据类型转换陈表示范围大的那一种数据类型在进行运算
4,实型(如:1.5)常量默认的数据类型为double型,整型常量(如:123)默认为int