JAVA基本数据类型有4类:
整形:byte、short、int、long(L)
浮点型:float(单精度F)、double(双精度) 【这里单精度和双精度的区别在于float的有效位约为8位,而double约为15位】
布尔型:boolean
字符型:char
数据类型转换(除boolean类型)
1.自动类型转换(隐式转换/合法转换)(由小向大转换)
如果当两个操作数中有一方是double类型的时候,另一个操作数自动转换为double类型
否则当两个操作数中有一方是float类型的时候,另一个操作数自动转换为float类型
否则当两个操作数中有一方是long类型的时候,另一个操作数自动转换为long类型
否则其他两个操作数自动转换为int类型
规则:由小字节向大字节自动转换
byte->short(char)->int->long->float->double
字符串类型
char→int
2.强制类型转换(由大向小转换)
进行强制类型转换。其语法格式如下:
(type)variableName
其中,type 为 variableName 要转换成的数据类型,而 variableName 是指要进行类型转换的变量名称,强制转换的实例如下:
int a = 3;
double b = 5.0;
a = (int)b;
上述代码中首先将 double 类型变量 b 的值强制转换成 int 类型,然后将值赋给 a,但是变量 b 本身的值是没有发生变化的。
在强制类型转换中,如果是将浮点类型的值转换为整数,直接去掉小数点后边的所有数字;而如果是整数类型强制转换为浮点类型时,将在小数点后面补零。
会造成缺失精度如float转换为int
float a = 10.72F
int b = (int) a
System.out.println("b" + b);
"b = 10"