Java 语言的数据类型分为两种:基本数据类型和引用数据类型。
- 1. 基本数据类型包括 boolean(布尔型)、float(单精度浮点型)、char(字符型)、byte(字节型)、short(短整型)、int(整型)、long(长整型)和 double (双精度浮点型)共 8 种,如下表所示。
基本类型 |
位数 |
字节 |
默认值 |
int |
32 |
4 |
0 |
short |
16 |
2 |
0 |
long |
64 |
8 |
0L |
byte |
8 |
1 |
0 |
char |
16 |
2 |
'u0000' |
float |
32 |
4 |
0f |
double |
64 |
8 |
0d |
boolean |
1 |
false |
对于 boolean,官方文档未明确定义,它依赖于 JVM 厂商的具体实现。逻辑上理解是占用 1 位,但是实际中会考虑计算机高效存储因素。
Java虚拟机规范讲到:在JVM中并没有提供boolean专用的字节码指令,而boolean类型数据在经过编译后在JVM中会通过int类型来表示,此时boolean数据4字节32位,而boolean数组将会被编码成Java虚拟机的byte数组,此时每个boolean数据1字节占8bit。
注意:
- Java 里使用 long 类型的数据一定要在数值后面加上 L,否则将作为整型解析:
- char a = 'h'char :单引号,String a = "hello" :双引号
2.引用数据类型建立在基本数据类型的基础上,包括数组、类和接口。引用数据类型是由用户自定义,用来限制其他数据的类型。另外,Java 语言中不支持 C++中的指针类型、结构类型、联合类型和枚举类型。