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
longl=10000000000;// 编译错!必须加 Llongl=10000000000L;// 正确floatf=3.14;// 编译错!必须加 ffloatf=3.14f;// 正确char 是无符号 16 位整数(0~65535),本质上是 Unicode 字符
charc1='A';// 65charc2='\u0041';// 也是 'A'charc3=65;// 合法,但不推荐(可读性差)boolean 只有 true/false,不能用 0/1 替代(不像 C/C++)
booleanflag=true;// boolean flag = 1; // 编译错误!自动类型转换顺序(从小到大,低精度 → 高精度)
byte → short → int → long → float → double
(char 特殊:char → int → long → float → double)包装类 vs 基本类型(自动装箱/拆箱)
Integeri=100;// 自动装箱intprimitive=i;// 自动拆箱
一句话总结:
Java 的八种基本类型中,六种是数字类型(4 整数 + 2 浮点),用于高效存储数值数据;剩下 char 用于字符,boolean 用于逻辑。
int和double是日常开发中使用频率最高的两种。
如果你想继续深挖某个类型(如 float/double 精度丢失、long 的实际使用场景、自动装箱缓存机制 IntegerCache),或者要代码示例/面试题,直接告诉我,我继续拆解!