基本数据类型
Java 有八种基本数据类型,分别用于存储整数、浮点数、字符数据和布尔数据。
数据类型分类概览
| 类型 | 说明 | 占用空间 | 存储范围 |
|---|---|---|---|
int | 整型 | 4 个字节 | 只能存储整数,范围约 -21亿 到 21亿(-2³¹ ~ 2³¹-1) |
long | 长整型 | 8 个字节 | 只能存储整数,范围非常大(约 ±92亿亿) |
double | 浮点型 | 8 个字节 | 可以装小数(也可以装整数,只是以小数方式存储),范围非常大 |
boolean | 布尔型 | 1 个字节 | 只能存储 true 和 false |
char | 字符型 | 2 个字节 | 存储单个字符 |
其余三种基本数据类型为
byte(1字节)、short(2字节)、float(4字节),共八种。
为什么变量有存储范围
变量之所以有存储范围,是因为在内存中开辟的存储空间是有限的。不同类型分配的字节数不同,能表示的范围也就不同。
字符型说明
字符是单个符号,比如 a、b、c、d 这些英文字母,1、2、3 这些数字,或者 &、%、! 这些符号。字符用单引号包裹,如 'A'、'中'。
存储单位换算
1 字节(Byte)= 8 位(bit)
1 KB = 1024 Byte
1 MB = 1024 KB
1 GB = 1024 MB
画一张图来理解内存空间与数据类型的关系:
┌──────────────────────────────────────────────────────┐
│ 内存(Memory) │
│ │
│ ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐ │
│ │ byte │ │ byte │ │ byte │ │ byte │ ... │
│ │ (1B) │ │ (1B) │ │ (1B) │ │ (1B) │ │
│ └────────┘ └────────┘ └────────┘ └────────┘ │
│ │
│ int a → 占用 4 个连续字节(4B) │
│ ┌────┬────┬────┬────┐ │
│ │ b1 │ b2 │ b3 │ b4 │ ← 32 位二进制 │
│ └────┴────┴────┴────┘ │
│ │
│ double d → 占用 8 个连续字节(8B) │
│ ┌────┬────┬────┬────┬────┬────┬────┬────┐ │
│ │ b1 │ b2 │ b3 │ b4 │ b5 │ b6 │ b7 │ b8 │ ← 64 位 │
│ └────┴────┴────┴────┴────┴────┴────┴────┘ │
│ │
│ char c → 占用 2 个字节(2B) │
│ ┌────┬────┐ │
│ │ b1 │ b2 │ ← 16 位,可表示 Unicode 字符 │
│ └────┴────┘ │
│ │
│ boolean flag → 占用 1 个字节(1B) │
│ ┌────────┐ │
│ │ 1B │ ← 值为 0(false)或 1(true) │
│ └────────┘ │
└──────────────────────────────────────────────────────┘Code language: JavaScript (javascript)
每个变量在声明时,Java 会根据数据类型在内存中分配固定大小的连续空间。空间越大,能表示的数值范围就越广,但同时占用的内存也越多。