数据类型
数据类型 | 位数 | 范围 | 默认值 |
byte | 8位 | -2^7~2^7-1 | 0 |
short | 16位 | -2^15~2^15-1 | 0 |
int | 32位 | -2^31~2^31-1 | 0 |
long | 64位 | -2^63~2^63-1 | 0 |
float | 32位 | 0.0f | |
double | 64位 | 0.0d | |
boolean | 1位 | ture/flase | flase |
char | 16位 | \u0000(0)~ \uffff(65535) | 'u0000' |
仔细观察可知,数据类型的范围位负2的位数次方减一到正2的位数次方减一再整体减一。
范围作用是限制变量大小,如byte a = 128;这个变量赋值就是不合法的。
数据类型之间可以相互转换,如是低级到高级可以自动转换(boolean与其它8种数据类型不能相互转换)
byte,short,char—> int —> long—> float —> double
short s1=3;//定义一个short类型
int i1 = s1;//short自动类型转换为int
如果是从高级到低级,不能自动转换,需强制转换(转换过程中可能会导致精读丢失)。
int i1 = 123;
short s1 = (short)i1;//强制类型转换为short
int i =128;
byte b = (byte)i;//范围超出精读丢失