在Java中基本数据类型从大到小的顺序为:
byte->short->int->long->float->double
char->int
boolean不参与转换
类型转换:
- 自动类型转换
小类型可以自动转换为大类型,不需要任何的操作
- 强制类型转换
大类型转换为小类型,需在变量前添加要转换成的数据类型
double d = 5.21
float ft = d;//此时会编译报错
float f = (float) d ;//double强转成float
long i = (long) f ;//float强转成long
int l = (int) i ;//long强转为int
short s = (short) l;//int强转为short
byte b = (byte) s;//short强转为byte
char c = (char) i ;//int强转为char
基本数据类型转换需要遵守的规则之一:
byte,short,char类型数据参与运算,先一律转换为int再进行运算
byte b = 1;
short s = 2;
char c = 'a';
long i1 = 10 + b;//i1 = 11
long i2 = 10 + s;//i2 = 12
long i3 = 10 + c;//i3 = 107
基本数据类型转换需要遵守的规则之二:
整数直接量可以直接赋值给byte、short、char,但不能超取值范围。
byte bt = 128;//编译报错
byte bt2 = -129;//编译报错
byte b1 = -128;
Java基本类型及其取值范围表
类型 | 字节数 | 范围 |
---|---|---|
byte | 1 | -128~127(-2的七次方到2的七次方-1) |
short | 2 | -32768~32767(-2的15次方到2的15次方-1) |
int | 4 | -2147483648~2147483647(-2的31次方到2的31次方-1 |
float | 4 | |
double | 8 | 最高位即63位为符号位,62-52位为指导位,51-0位为尾数,或者称为有效数字位 |
long | 8 | (-2的63次方到2的63次方-1) |
char | 2 | |
boolean | 不定 | true,false |