Java 定义了一些基本数据类型。隶属于基本数据类型的变量直接存储变量值,并将其放置于栈内存中。栈内存指的是 RAM(随机访问存储器,Random Access Memory)。Java 可通过栈指针获得处理器的直接支持。当栈指针下移时,分配内存;上移时释放内存,这是一种快速有效的内存分配方法,速度仅次于寄存器。因此相对类对象来说,更加高效。
基本类型 | 占用空间 | 最小值 | 最大值 | 包装类型 | 默认值 |
---|---|---|---|---|---|
boolean | — | — | — | Boolean | false |
char | 16 bits | 0(Unicode 形式) | 216 -1(Unicode 形式) | Character | \u0000,即空字符 |
byte | 8 bits | -128 | +127 | Byte | 0,byte 格式 |
short | 16 bits | - 215 | + 215 -1 | Short | 0,short 格式 |
int | 32 bits | - 231 | + 231 -1 | Integer | 0 |
long | 64 bits | - 263 | + 263 -1 | Long | 0L |
float | 32 bits | IEEE754 | IEEE754 | Float | 0.0f |
double | 64 bits | IEEE754 | IEEE754 | Double | 0.0d |
void | — | — | — | Void | - |
- IEEE754,即 IEEE 二进制浮点数算术标准,它是20世纪80年代以来最广泛使用的浮点数运算标准,为许多CPU与浮点运算器所采用。这个标准定义了表示浮点数的格式(包括负零-0)与反常值(denormal number)),一些特殊数值(无穷(Inf)与非数值(NaN)),以及这些数值的“浮点数运算符”;它也指明了四种数值舍入规则和五种例外状况(包括例外发生的时机与处理方式)。
- 布尔(boolean)类型没有大小的概念,只有字面值 “true” 或 “false” 。
- 每种基本类型有自己所对应的包装类型,这些包装类型会被存储在堆内存中。堆内存(Heap)也在 RAM 中,并且存储了所有 Java 对象。使用 new 创建对象时,Java 就会自动在堆中分配内存。
4.这些基本数据类型的默认值仅在初始化类时,才会被自动初始化。但这些初始默认值不一定是我们想要的初始值。 所以,建议始终显式地初始化这些基本数据类型变量。
注意: 基本数据类型初始化为默认值仅适用于类的字段变量,而对类方法中的基本数据类型变量无效。
示例方法中的变量 length 不会自动初始化为 0L,所以 IDE 提示我们该变量还未被初始化啦O(∩_∩)O