基本数据类型
详细情况如下:
类型 | 关键字 | 长度【bits】 | 取值范围 | 说明 | 包装器类型 |
整型 | byte | 8(1字节) | [-128,27] | 存储字节数据(常用) | Byte |
short | 16(2字节) | [-2^15,2^15-1] | Short | ||
int | 32(4字节) | [-2^31,2^31-1] | 存储普通整数(常用) | Integer | |
long | 64(8字节) | [-2^63,2^63-1] | 存储长整数(常用) | Long | |
字符型 | char | 16(2字节) | [0,65535]or[0,2^16-1] | 存储一个字符(常用),Unicode编码 | Character |
逻辑型 | boolean | 8(1字节) | true 或 false | 存储逻辑变量(常用) | Boolean |
浮点型 | float | 32(4字节) | 存储浮点数 | Float | |
double | 64(8字节) | 存储双精度浮点数 | Double |
注:
1.基本数据类型的转换:
自动类型转换(隐式类型转换):从小类型到大类型转换可以自动完成,关系如下:
强制转换:从大类型到小类型需要强制转换,可能导致精度丧失或溢出
2.在栈中可以直接分配内存的数据是基本数据类型;引用数据类型,数据的引用存在栈中,它的对象存在堆中;
3.java中默认的整数类型是int类型,如果要定义为long型,在数值后面加l(L);默认的浮点型也是双精度浮点double,若要定义为float型,则在数值后面加上f(F);
4.byte,char,short三种类型实际存储的数据都是整数,使用规则如下:
int直接量可以直接赋值给byte,char,short,只要不超过其表示范围;
byte,char,short三种类型参与运算时,一律先转换成int类型在进行计算