基本数据类型: byte short char int long float double
基本数据类型对应的包装类:Byte Short Character Integer Long Float Double
**注:字符型char所表示的单个字符与Ascii码中相对应的整型对应 :A~Z --> 97~122 a~z – > 65~90
数据类型 | 所占字节 | 位数 | 数值范围 | 包装器类型 |
---|---|---|---|---|
boolean | -------- | ---------------- | --------------------------------------- | Boolean |
byte | 1字节 | 8*1 = 8bits | -128 ~ 127 | Byte |
char | 2字节 | 8*2 = 16bits | Unicode 0 ~ Unicode 2^16 - 1 | Character |
short | 2字节 | 8*2 = 16bits | -2^15 ~ 2^15 - 1 | Short |
int | 4字节 | 8*4 = 32bits | -2^31 ~ 2^31 - 1 | Integer |
long | 8字节 | 8*8 = 64bits | -2^63 ~ 2^ 63 - 1 | Long |
float | 4字节 | 8*4 = 32bits | IEEE754 ~ IEEE754 | Float |
double | 8字节 | 8*8 = 64bits | IEEE754 ~ IEEE754 | Double |
(1). 基本数据类型中类型的自动提升
(2). 隐式类型转换
* 隐式转换也叫自动类型转换(由系统自动完成): byte -> short (char) -> int -> long -> float -> double 从左到右的数据类型能发生隐式转换
(3). 显示转换:
* 显示转换也叫做强制类型转换,由程序猿手动敲代码完成 例如: ```java int i = (int)3.1415926535 ``` * double -> float -> long -> int -> short(char) -> byte
(4). 进行数学计算时,数据会自动提升,这是时候可能会用到强制类型转换
int a = 9; byte b = 1; byte result = (byte)(a + b); // b会自动类型提升转换为int 但由于接受结果的数据为byte类型有得进行强制类型转换
注:当进行数学运算的时候,数值范围较小的数据会自动提升为较大者! ! !