Java的数据类型分为两大类:基本数据类型(Primitive Data Types)和引用数据类型(Reference Data Types)。基本数据类型由Java直接支持,而引用数据类型包括类、接口和数组。
基本数据类型在Java中有8种,可以进一步分为4类:整数类型、浮点类型、字符类型和布尔类型。每种基本数据类型占用的空间大小是固定的,与平台无关。
1. 基本数据类型
数据类型 | 关键字 | 位数 | 字节数 | 值范围 |
---|---|---|---|---|
整数类型 | ||||
字节 | byte | 8 | 1 | -2^7 到 2^7-1 ( -1.28 × 10² 到 1.27 × 10² ) |
短整数 | short | 16 | 2 | -2^15 到 2^15-1 ( -3.28 × 10⁴ 到 3.27 × 10⁴ ) |
整数 | int | 32 | 4 | -2^31 到 2^31-1 ( -2.15 × 10⁹ 到 2.14 × 10⁹ ) |
长整数 | long | 64 | 8 | -2^63 到 2^63-1 ( -9.22 × 10¹⁸ 到 9.22 × 10¹⁸ ) |
浮点类型 | ||||
单精度浮点 | float | 32 | 4 | 1.4E-45 到 3.4E38 ( 1.4 × 10⁻⁴⁵ 到 3.4 × 10³⁸ ) |
双精度浮点 | double | 64 | 8 | 4.9E-324 到 1.8E308 ( 4.9 × 10⁻³²⁴ 到 1.8 × 10³⁰⁸ ) |
字符类型 | ||||
字符 | char | 16 | 2 | 0 到 2^16-1 ( 0 到 6.55 × 10⁴ ) |
布尔类型 | ||||
布尔 | boolean | 未定义 | 1 或 4 | 只有两个值:true 和 false |
2. 引用数据类型
引用数据类型包括类(Classes)、接口(Interfaces)和数组(Arrays)。引用数据类型的存储在Java虚拟机中通常涉及对象的引用(即指针)和对象本身。引用类型的大小依赖于具体的Java虚拟机实现以及平台。例如,在64位的Java虚拟机中,一个对象引用通常是64位(8字节),而在32位虚拟机中通常是32位(4字节)。
数据类型 | 关键字 | 占用空间 |
---|---|---|
类 | class | 4 或 8 字节(对象引用) |
接口 | interface | 4 或 8 字节(对象引用) |
数组 | [] | 4 或 8 字节(数组引用) + 数组元素的大小 |