Java 语言提供了 八种基本数据类型(primitive types),它们是 Java 中最基础、最直接的数值/逻辑表示方式,不依赖于对象(不像包装类 Integer、Double 等)。
官方标准表述(来自 Oracle Java 文档和绝大多数教材):
Java 语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。
八种基本数据类型完整列表
| 序号 | 类型关键字 | 分类 | 占用字节 | 位数 | 默认值 | 取值范围 | 包装类 | 典型用途 / 备注 |
|---|---|---|---|---|---|---|---|---|
| 1 | byte | 整数型 | 1 | 8 | 0 | -128 ~ 127 | Byte | 大数组节省内存、字节流处理 |
| 2 | short | 整数型 | 2 | 16 | 0 | -32,768 ~ 32,767 | Short | 节省内存的整数(较少用) |
| 3 | int | 整数型 | 4 | 32 | 0 | -2³¹ ~ 2³¹-1(约 -21亿 ~ 21亿) | Integer | 最常用的整数类型 |
| 4 | long | 整数型 | 8 | 64 | 0L | -2⁶³ ~ 2⁶³-1 | Long | 大整数、时间戳、ID 等 |
| 5 | float | 浮点型 | 4 | 32 | 0.0f | ±1.4E-45 ~ ±3.4028235E+38(约6-7位有效数字) | Float | 科学计算、图形(精度较低) |
| 6 | double | 浮点型 | 8 | 64 | 0.0d | ±4.9E-324 ~ ±1.7976931348623157E+308(约15-16位) | Double | 最常用的浮点类型(精度更高) |
| 7 | char | 字符型 | 2 | 16 | ” | 0 ~ 65535(Unicode 字符) | Character | 单个字符、Unicode 支持 |
| 8 | boolean | 布尔型 | ~1 bit | — | false | true / false | Boolean | 逻辑判断、开关 |
- 六种数字类型:正是上面表格中的 1~6(byte/short/int/long/float/double)。
- 两种非数字:char(字符)和 boolean(布尔)。
关键记忆点 & 面试/考试常考
- 整数默认是 int,浮点默认是 double
long l = 10000000000; // 编译错!必须加 L
long l = 10000000000L; // 正确
float f = 3.14; // 编译错!必须加 f
float f = 3.14f; // 正确
- char 是无符号 16 位整数(0~65535),本质上是 Unicode 字符
char c1 = 'A'; // 65
char c2 = '\u0041'; // 也是 'A'
char c3 = 65; // 合法,但不推荐(可读性差)
- boolean 只有 true/false,不能用 0/1 替代(不像 C/C++)
boolean flag = true;
// boolean flag = 1; // 编译错误!
- 自动类型转换顺序(从小到大,低精度 → 高精度)
byte → short → int → long → float → double
(char 特殊:char → int → long → float → double) - 包装类 vs 基本类型(自动装箱/拆箱)
Integer i = 100; // 自动装箱
int primitive = i; // 自动拆箱
一句话总结:
Java 的 八种基本类型 中,六种是数字类型(4 整数 + 2 浮点),用于高效存储数值数据;剩下 char 用于字符,boolean 用于逻辑。
int 和 double 是日常开发中使用频率最高的两种。
如果你想继续深挖某个类型(如 float/double 精度丢失、long 的实际使用场景、自动装箱缓存机制 IntegerCache),或者要代码示例/面试题,直接告诉我,我继续拆解!