byte | 字节型 1字节(8bit) | 初始值:0 |
char | 字符型 2字节 | 空格 |
short | 短整型 2字节 | 0 |
int | 整形 4字节 | 0 |
long | 长整形 8字节 | 0L |
float | 单精度浮点型 4字节 | 0.0f |
double | 双精度浮点型 8字节 | 0.0d |
boolean | Java未明确指出的大小 (可能1bit,1byte,4byte) | false |
上面所写的初始值都是针对类成员的变量。
数据类型之间的转换
两种:自动转换和强制转换
自动转换 小——>大
较“小”数据与较“大”数据一起运算时,系统将自动将小数据转换成大数据进行运算。
这些类型由"小"到"大"分别为 (byte,short,char)--int--long--float—double。这里我们所说的"大"与"小",并不是指占用字节的多少,而是指表示值的范围的大小。
①下面的语句可以在Java中直接通过:
byte b;int i=b; long l=b; float f=b; double d=b;
②如果低级类型为char型,向高级类型(整型)转换时,会转换为对应ASCII码值,例如
char c='c'; int i=c;
System.out.println("output:"+i);输出:output:99;
强制转换 大——>小
对于byte,short,char三种类型而言,他们是平级的,因此不能相互自动转换,可以使用下述的强制类型转换。
short i=99 ; char c=(char)i; System.out.println("output:"+c);
输出:output:c;
注意:
①所有的byte,short,char型的值将被提升为int型;
②如果有一个操作数是long型,计算结果是long型;
③如果有一个操作数是float型,计算结果是float型;
④如果有一个操作数是double型,计算结果是double型;
例, byte b; b=3; b=(byte)(b*3);//必须声明byte。