数据类型
-
整数型:byte字节型(1字节)、short短整型(2字节)、int整型(4字节)、long长整型(8字节)
-
浮点型:float浮点型(4字节)、double双精度浮点型(8字节)
-
字符型 :char字符型(2字节)
-
布尔型:Boolean布尔型(1位)
整数型、浮点型和字符型称为数值类型;Boolean型为布尔类型。
上文提到的字节和位的关系,字节英文:byte,位英文:bit,1byte=8bit
想到数据类型我们是不是就会想到类型转换 ,那么我们怎么理解类型转换呢?我们想像一下,一瓶装满水的杯子可以倒入大杯子不会溢出,但是一瓶装满水的大杯子倒入小杯子,小杯子一定会溢出,这时我们可以将容量看成是字节,小字节可以转换为大字节,大字节会转换为小字节但需要强制性转换。如下2字节转换为4字节是比较简单的类型转换:
而且在运行浮点型我们发现了一些float的性质:我们看下面的源代码
float i1=0.1F;
double i2=1.0/10;
System.out.println(i1==i2);
System.out.println(i1);
System.out.println(i2);
float i3=123333337777777777F;
float i4=i3+1;
System.out.println(i3==i4);
由上面的源代码我们直接看的话会认为i1==i2为true,i3==i4为false,如果我们这样想的话就是错的,我们看下面的运行结果:
由运行结果我们知道与我们想象的完全不一致,这就与float特性有关了,其具有离散性、舍入误差、接近但不等于等性质。所以在我们碰到银行业务如何表示时的笔试题,切忌不可采取float,具有误差,我们可以引入新的类BigDecimal数学工具类,来对银行业务进行表示,如果大家要对BigDecimal类了解可以自行查阅资料深入了解。