数据类型
大约 2 分钟
分类
![](https://cdn.jsdelivr.net/gh/sunzhenyang/blog-img/img/image-20210317115821602.png)
基本数据类型
- 数值型
- 整数类型
- byte:字节型
- short:短整型
- int:整型
- long:长整型,以大写的或小写的(L/l)结尾,未加 L 被视为 int
- 浮点类型
- float:单精度浮点型,以大写的或小写的(F/f)结尾
- double:双精度浮点型,浮点型字面值默认为 double 类型
- 整数类型
- 字符型(char)
- 布尔型(boolean)
- 数值型
引用数据类型
字符串(String)
类(class)
接口(interface)
数组
空间占用
数据类型 | 说明 | 字节 | 位 | 最小范围 | 最大范围 |
---|---|---|---|---|---|
byte | 字节型 | 1 | 8 | -2^7 | 2^7-1 |
short | 短整型 | 2 | 16 | -2^15 | 2^15-1 |
int | 整型 | 4 | 32 | -2^31 | 2^31-1 |
long | 长整型 | 8 | 64 | -2^63 | 2^63-1 |
float | 单精度浮点型 | 4 | 32 | -3.40E+38 | 3.40E+38 |
double | 双精度浮点型位有效数字) | 8 | 64 | -1.79E+308 | 1.79E+308 |
char | 字符型 | 2 | 16 | 0 | 65535 |
boolean | 布尔型 | 1 | 8 |
字面值
- 整型字面值
- 二进制(BIN)
- 十进制(DEC)
- 八进制(OCT):以 0 开头,包括 0-7 的数字(例:037、056)
- 十六进制(HEX):以 0x 或 0X 开头,包括 0-9 的数字,及字母 a-f(例:0x12、0xabcf)
- 也可以是 A-F,a 表示数字 10,以此类推
- 后面加
L
表示长整型数据
- 浮点型字面值
- float 类型需要在字面值后加
f
或F
- 默认情况下表示 double 类型,也可在字面值后加
d
或D
- float 类型需要在字面值后加
- 字符型字面值
- 用单引号内的单个字符表示('a'、'b'、'c'、'$')
- 值可以是 ASCLL码 的编号
- 如果字面值超出 char 类型所表示的数值范围,需要进行强制类型转换
- 布尔型字面值
- true
- false
- 字符串字面值
- 双引号引起来的 0 个或多个字符
基本数据类型变量的存储
- 按作用范围分类
- 类级
- 对象实例级
- 方法级(局部变量)
- 存储在 栈 中
- 块级
类型转换
自动(隐式)类型转换
下图箭头相反方向均需要强制类型转换
byte
、short
、char
三种类型变量之间随意组合做运算,结果均为int
类型
![](https://cdn.jsdelivr.net/gh/sunzhenyang/blog-img/img/image-20201215161030045.png)
强制类型转换
如果 A 类型的数据表示范围比 B 类型大,则将 A 类型的值赋值给 B 类型,需要强制类型转换
// 转换格式
long num1 = 10L;
int num2 = (int) num1;