基本数据类型

基本数据类型

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 会根据数据类型在内存中分配固定大小的连续空间。空间越大,能表示的数值范围就越广,但同时占用的内存也越多。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注